我目前正在编写一些聊天程序,现在想通过客户端命令播放音乐,如:
/music http://somewebsite.com/somesong.mp3
因此,链接将从发送歌曲的客户端发送到服务器。然后,服务器应该在不下载歌曲的情况下,将其流式传输到每个客户端(他们也不应该下载)。问题是,我不知道如何通过基于TCP的连接流式传输mp3。
我的问题是,是否有人能为我提供我需要的库/教程/想法/代码示例。
作为一种替代方案,直接从一个客户的计算机上播放音乐也可以。如果我(作为客户)在我的机器上播放一首歌(使用VLC或类似的音乐播放器),然后键入某个命令(可能/stream),我的声卡中的声音将流式传输到服务器,然后传输到每个登录的客户。
如果你能为我提供一些两者的建议,那就太棒了,谷歌到目前为止并没有真正帮助我,主要是因为我不太明白我应该搜索什么。
提前感谢!
我发现了一个库,它正是我想要做的:http://www.javazoom.net/javalayer/javalayer.html
public void play() {
String song = "http://www.ntonyx.com/mp3files/Morning_Flower.mp3";
Player mp3player = null;
BufferedInputStream in = null;
try {
in = new BufferedInputStream(new URL(song).openStream());
mp3player = new Player(in);
mp3player.play();
} catch (MalformedURLException ex) {
} catch (IOException e) {
} catch (JavaLayerException e) {
} catch (NullPointerException ex) {
}
}
希望这能帮助每个人解决类似的问题:-)
最简单的方法可以是使用Servlet。将内容类型设置为"audio/mpeg3"。servlet将流式传输字节,用户将能够在浏览器中播放音乐。