3

如标题所示,如何在没有 vitamio 的情况下在 Android 上流式传输 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 Player,但我无法设置 mMediaPlayer 来重现它。

4

2 回答 2

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)); 
                }
            });
于 2014-01-08T23:17:45.940 回答
-1

您的 m3u8 不是真正的 HLS 文件。它只是一个指向单个 MP3 的播放列表指针

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

您可以使用媒体播放器直接从源流式传输,也可以在代码中解析文件 m3u8 文件以提取单个 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)); 
于 2013-11-26T15:22:02.107 回答