2012-03-22 75 views
4

我目前编码一些聊天程序,现在想通过像客户端的命令来播放音乐:流音乐与Java

/音乐http://somewebsite.com/somesong.mp3

所以链接会从客户端发送来发送歌曲,到服务器。然后服务器应该没有下载歌曲,流到每个客户端(他们不应该下载它)。问题是,我不知道如何通过基于TCP的连接传输mp3。

我的问题是,如果有人能为我提供的库/教程/创意/代码的什么,我需要的例子。

直接流从一个客户端的计算机音乐会好起来的,以及替代。如果我(作为客户端)播放一首歌曲在我的机器上(使用一些音乐播放器一样VLC或类似),然后键入某个命令(也许/流),从我的声卡的声音将被传输到服务器,然后到

记录在每一个客户端。这将是真棒,如果你能为我提供一些建议两种,谷歌并没有真正的帮助,到目前为止,主要是因为我不太明白我应该寻找。

在此先感谢!

+0

“流”和“下载”的区别类似的问题是客户端的考虑因素。服务器只是以任何方式发送字节。 – Affe 2012-03-22 07:42:36

+0

为真。我只是想强调,我不想以某种方式流式传输/下载文件的副本。这会使一切真的很慢(文件需要在播放之前完全下载)。该歌曲应该在输入命令后立即开始。 – pudelhund 2012-03-22 08:26:05

回答

8

我发现了一个库,不正是我想做的事: 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) { 
     } 

} 

希望帮助大家用:-)

0

最简单的方法可能是使用一个Servlet。将内容类型设置为“audio/mpeg3”。该servlet将流式传输字节,用户将能够在浏览器中播放音乐。