在我的代码中,应用程序找到了一个指向 .m3u8 文件的 URL。这就是接下来会发生的事情:
mVideoView.setVideoURI(Uri.parse(feed.getUrl().toString())); // feed.getUrl returns the url
mVideoView.start();
它在 Android 3.1+ 上运行良好。不在早期版本上,因为它使用 https(参见:http: //developer.android.com/guide/appendix/media-formats.html)
所以我所做的是我为 Android 2.2+ 创建了一个新版本的应用程序,它使用vitamio,一个应该让我更容易的库。但是,在 (android.widget.VideoView) 完美处理的地方, (io.vov.vitamio.widget.VideoView) 需要很长时间来加载流并最终在崩溃时说:
但是,当我尝试加载此 URL 时: http: //devimages.apple.com/iphone/samples/bibpbop/gear1/prog_index.m3u8 它工作正常!
我无法分享我需要使用的 URL,但这是它指向的 .m3u8 的内容:
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=264000
playlist.m3u8?session=003016302664236&index=0
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1364000
playlist.m3u8?session=003016302664236&index=1
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=44000
playlist.m3u8?session=003016302664236&index=2
所以我可以看到这个和苹果样本之间的主要区别是我使用 https,我的文件指向其他 .m3u8 文件(而苹果的 .m3u8 指向 .ts 文件).. 两者似乎都使用AAC 音频。
这个问题似乎与维生素有关。我怎样才能绕过这个崩溃?非常感谢你。