Android 4(冰淇淋三明治)上的Http直播流传输

7
我希望你能够在安卓设备上播放Http Live Streaming链接(.m3u8)。请问您能告诉我如何编写代码吗?以下是我尝试的代码(位于Activity的onCreate事件中),但是无法播放(显示无法播放视频):
VideoView vv = new VideoView(this);
Uri uri =Uri.parse("http://devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8");
vv.setVideoURI(uri);
setContentView(vv);

注意:使用模拟器进行测试 感谢您的帮助。

在设置 ContentView 后,你是否调用了 vv.start() 方法? 这应该可以工作。 你有收到任何异常吗? - Rajdeep Dua
嗨,Rajdeep,我刚刚添加了vv.start(),但没有帮助-输出相同。LogCat显示了一些消息:错误消息:“无法创建媒体播放器”。异常是java.io.IOException:setDataSource失败。 - Jay
据我所知,模拟器上的WIFI网络层是从底层操作系统网络层模拟出来的,如果您的计算机位于某个代理服务器后面,您可能会遇到类似的错误(如果我没记错的话,我曾经遇到过类似的错误)。 - yorkw
2个回答

3
请尝试以下操作:
    String httpLiveUrl = "http://devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8";
    videoView.setVideoURI(Uri.parse(httpLiveUrl));
    videoView.setMediaController(new MediaController(this));
    videoView.requestFocus();
    videoView.start();

或者

尝试使用VitaMio媒体播放器。

HTTP直播流(M3U8),适用于Android 2.1以上版本。

编辑:VitaMio播放器已经失效。


我认为在实际设备中这将非常有效,因为它在HoneyComb中运行良好,模拟器有时会出问题。


谢谢Reno,但我了解到Android 3+默认支持HTTP Live Streaming(HLS)。由于我只会为Android 4开发,所以是否需要VitaMio? - Jay
1
一些已知问题。仿真器似乎不可靠。 - Reno
+1 这是在模拟器上正确的做法,我在我的两个Android项目中使用了同样的代码而没有任何问题。请注意,对于某些真实设备,httplive 不起作用,需要将其改回 http。 - yorkw
1
不支持“httplive”协议。 - Roman Nurik
有人成功了吗?我在Android 4.0.3上遇到了与@Jay相同的问题。 - BlueVoodoo
显示剩余2条评论

1

看起来模拟器可能不完全支持此功能。 在ICS设备上运行正常。


你有ICS设备吗?它还没有发布。 - Reno
1
注意:我是谷歌Android开发团队的一员。 - Rajdeep Dua

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接