我需要支持Jersey REST上的简历,我试图这样做:
@Path("/helloworld")
public class RestServer {
@GET
@Path("say")
@Produces("audio/mp3")
public Response getMessage(@HeaderParam("Range") String r ) throws IOException{
String str="/Users/dima/Music/crazy_town_-_butterfly.mp3";
System.out.println(r);
RandomAccessFile f=new RandomAccessFile(str, "r");
int off=0;
int to=(int)f.length();
byte[] data ;
if(r!=null){
String from=r.split("=")[1].split("-")[0];
String t=r.split("=")[1].split("-")[1];
off=Integer.parseInt(from);
to=Integer.parseInt(t);
}
data= new byte[to-off];
f.readFully(data, off, to-off);
ResponseBuilder res=Response.ok(data)
.header("Accept-Ranges","bytes")
.header("Content-Range:", "bytes "+off+"-"+to+"/"+data.length)
.header("Pragma", "no-cache");;
if(r==null){
res=res.header("Content-Length", data.length);
}
f.close();
Response ans=res.build();
return ans;
}
}
Run Code Online (Sandbox Code Playgroud)
我希望能够流式播放MP3,以便浏览器可以搜索音乐,但在Safari中它仍然无法正常工作.有任何想法吗?
基本思想是访问.mp3文件并通过RTP流将其发送给其他想要播放该歌曲的客户端.
这是RTPServer.java,我在网上找到并根据自己的喜好进行了修改.
__CODE__在__CODE__窗口上获取整个屏幕的设备上下文,并可以通过调用来跟进__CODE__:
package server;
import java.net.InetAddress;
import javax.media.rtp.*;
import javax.media.rtp.rtcp.*;
import javax.media.*;
import javax.media.protocol.*;
import javax.media.control.*;
public class RTPServer implements ControllerListener, Runnable {
private boolean realized = false;
private boolean configured = false;
private String ipAddress;
Processor p;
MediaLocator src;
public static void main (String[] args) {
RTPServer rtp = new RTPServer("192.168.1.101", "04 - Blue.mp3");
Thread t = new Thread(rtp);
t.start();
}
public RTPServer(String ip, String song) {
ipAddress = ip;
String srcFile = …Run Code Online (Sandbox Code Playgroud) 我目前正在编写一些聊天程序,现在想通过客户端命令播放音乐,如:
/music http://somewebsite.com/somesong.mp3
Run Code Online (Sandbox Code Playgroud)
因此,链接将从发送歌曲的客户端发送到服务器.然后服务器应该不下载歌曲,将其流式传输到每个客户端(他们也不应该下载它).问题是,我不知道如何通过基于TCP的连接流式传输mp3.
我的问题是,如果有人能够提供我需要的库/教程/想法/代码示例.
作为替代方案,从一个客户端的计算机直接流式传输音乐也是可以的.如果我(作为客户端)在我的机器上播放歌曲(使用某些音乐播放器,如VLC或类似),然后输入某个命令(可能是/ stream),声卡中的声音将流式传输到服务器,然后传输到每个客户登录.
如果你能为我提供一些建议,那将是非常棒的,谷歌到目前为止并没有真正帮助,主要是因为我不太明白我应该搜索什么.
提前致谢!