2013-11-26 126 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)); 
       } 
      });