2013-11-26 121 views
3

作爲標題,如何在Android上流沒有vitamio m3u8音頻? (在Android 2.3以上)。我已經看到一些應用程序可以像我的鏈接http://4metest1-view.4me.it/api/xpublisher/resources/weebopublisher/getContentDescriptor.m3u8?clientId=4metest1&contentId=b55f7d74-cd81-48ce-9390-d9ffd5c49281&channelType=STREAMHTTPIOS&v=4 像VLC或aqua播放器,但我不能設置mMediaPlayer重現它。Android音頻m3u8流 - 如何

+0

您使用的是流媒體服務如的Icecast或Shoutcast的輕鬆的音樂:)來播放音頻? – Brianjs

+0

不,不是一個shoutcast,它只是一個HLS HTTP流媒體,但mediaplayer不會重現它。同一臺服務器可以將m3u8與音頻和視頻進行流式傳輸,並且此視頻流在android中沒有任何問題。此m3u8音頻只有是:(我能做什麼? –

+0

在Android 2.3和3.0,你必須使用httplive://方案,在3.1使用http://。你在測試什麼版本的Android? – Brianjs

回答

-1

您的m3u8不是真正的HLS文件。這僅僅是一個播放列表指針指向一個單一的MP3

http://4metest1-4me.weebo.it/ios/Dance_of_the_Yao_People_3_JIDMQ7.mp3 

您可以使用媒體播放器直接從源流或解析文件M3U8文件在你的代碼中拉出idividual URL的

url url = new URL(" http://4metest1-view.4me.it/api/xpublisher/resources/weebopublisher/getContentDescriptor.m3u8?clientId=4metest1&contentId=b55f7d74-cd81-48ce-9390-d9ffd5c49281&channelType=STREAMHTTPIOS&v=4"); 

InputStream m3u8 = (InputStream) url.getContent();  
BufferedReader br = new BufferedReader(new InputStreamReader(M3U8)); 
for(int i = 0; i < 2; ++i) 
{ 
    br.readLine(); 
}| 
readLine(); //this parses the third line of the playlist 
br.close(); 
url = new URL(baseURL.concat(target)); 
+0

對不起,這不是我要找的。鏈接只是一個URL配置的例子,因爲我需要一個webradio(NO SHOUTCAST),所以我找不到每一個mp3片段。 –

+0

好的所以你正試圖創建和互聯網廣播流?您是否使用任何類型的廣播代理?只需直播播放列表鏈接? – Brianjs

+0

我試圖在我的android設備上播放隨HLS協議提供的點播音頻流。問題不在於我發佈的m3u8:事實上,我可以使用IOS設備,VLC和其他HLS播放器(如http://osmfhls.kutu.ru/)播放它。我注意到,我可以播放HLS點播視頻流,但如果流只有音頻,它不會奏效。 –

0

使用VideoView與

myVideoView = (VideoView)this.findViewById(R.id.myVideoView); 
      MediaController mc = new MediaController(this); 
      myVideoView.setMediaController(mc);      
      urlStream = "http://4metest1-view.4me.it/api/xpublisher/resources/weebopublisher/getContentDescriptor.m3u8?clientId=4metest1&contentId=b55f7d74-cd81-48ce-9390-d9ffd5c49281&channelType=STREAMHTTPIOS&v=4"; 
      runOnUiThread(new Runnable() { 
       @Override 
       public void run() { 
        myVideoView.setVideoURI(Uri.parse(urlStream)); 
       } 
      });