Android Live 4上的HTTP直播(HLS)不适应?

时间:2012-12-19 15:44:53

标签: android http-live-streaming

我一直在尝试使用HLS将视频流式传输到Android设备,这是自HoneyComb以来正式支持的。问题是,当我使用Apple HLS测试流时似乎没有适应性。当我有一个良好的连接时,我得到一个高质量的适当流,但当我使用3G时,我得到相同的质量和流媒体滞后。我一直在使用标准的Android类:

String Url = AppleUrl = "http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8";
MediaController mMediaController = new MediaController(this);
VideoView mVideoView = (VideoView) findViewById(R.id.vid);
mVideoView.setVideoPath(Url);
mVideoView.setMediaController(mMediaController);
mVideoView.setOnPreparedListener(new OnPreparedListener() {
    @Override
    public void onPrepared(MediaPlayer mp) {
         mp.start();
    }
});

当使用VLC时,我得到相同的结果,如果Android真的支持HLS流的自适应性,有没有人测试?

更新

将流网址更新为多轨m3u8播放列表

2 个答案:

答案 0 :(得分:3)

因此事实证明Android确实支持HLS流,但是自适应比特率切换部分被省略了。一旦连接变得更好或更糟,并且选择了不同的视频轨道,流就会冻结,很快就会崩溃。

答案 1 :(得分:1)

在您的代码示例中,播放列表的URL是针对特定比特率的,除非Android客户端知道备用节目,否则无法进行自适应流式传输。

您需要为VideoView设置不同的网址。试试这个包含多个比特率的那个:http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8