zoukankan      html  css  js  c++  java
  • 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为拓展名的,我们在

    VideoPlayer.java中将以下代码修改
     
     
    原来是intent.setDataAndType(uri,"video/*"),现在改为intent.setDataAndType(uri,"video/ts"),这时候再点击播放按钮,会根据你手机中安装的能够播放HLS的播放器然后弹出一个选择框,选择其中一个即可,如果一同选择记住此选择,那么下次点击的时候不会提示,直接默认用上次打开的播放器来播放。
     
     
     
     
     
     
     
     
  • 相关阅读:
    javascript数据类型转换
    javascript运算符
    数据类型
    第一个JavaScript代码
    Javascript简介
    z-index
    Java代码优化
    Java中,什么是构造函数?什么是构造函数重载?什么是复制构造函数?
    java中继承条件下构造方法的执行过程
    java中的继承、重载和覆盖是什么意思
  • 原文地址:https://www.cnblogs.com/myzhibie/p/3913027.html
Copyright © 2011-2022 走看看