phongap开发中安卓平台上如何调用第三方播放器来播放HLS视频
前文曾经讲了关于在安卓平台上利用phonegap开发播放HLS的解决方案,其实最好的方案就是自己针对HLS视频开发自己的播放器,但是开发播放器是一个浩大的工程,必须对原生安卓开发非常熟悉,并且对视频播放知识需要一定的积累。对于一般开发人员,尤其是web开发人员来讲,这显然不现实,同时这也违背了我们采用phonegap来开发跨平台移动软件的初衷。那么在这种情况下如何达到我们预期的目标呢?答案是调用第三方应用。
step1:首先需要在手机上安装一个能够播放HLS协议视频的播放器,例如MXplayer或者QQ浏览器。
step2:如何调用这个播放器来播放呢?涉及到调用播放器这就要写原生的Java代码了,我们可以利用这个Videoplayer的phonegap插件https://github.com/raulduran/VideoPlayer,直接使用这个插件来播放视频的话,它在不同手机上表现形式是不同的,笔者使用的是红米手机进行测试的。直接播放的话会调用系统自带的播放器来播放,这种情况下,这个播放器是不能够播放HLS视频的。而且红米手机无法更改默认视频播放器(不root的话),如何解决?
step3:当然我们可以获取安装在手机上的第三方播放器的包名以及入口Activity类名来直接打开它,但是这种方法需要写很多代码,并且效率不高,因为要去查找手机中所有的应用。
step4:最好的办法是修改我们使用的Videoplayer插件的源代码,由于HLS视频的索引文件是以ts为拓展名的,我们在
![](http://images0.cnblogs.com/i/475683/201408/142307071236174.jpg)
VideoPlayer.java中将以下代码修改
![](http://images0.cnblogs.com/i/475683/201408/142308006238385.jpg)
原来是intent.setDataAndType(uri,"video/*"),现在改为intent.setDataAndType(uri,"video/ts"),这时候再点击播放按钮,会根据你手机中安装的能够播放HLS的播放器然后弹出一个选择框,选择其中一个即可,如果一同选择记住此选择,那么下次点击的时候不会提示,直接默认用上次打开的播放器来播放。