2012-03-22 76 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將流式傳輸字節,用戶將能夠在瀏覽器中播放音樂。