使用java流式传输音乐



我目前正在编写一些聊天程序,现在想通过客户端命令播放音乐,如:

/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将流式传输字节,用户将能够在浏览器中播放音乐。

最新更新