前面写过对接海康视频封装cordova插件实现js一句代码全屏监控视频功能,今天来写写对接大华摄像头的,海康安卓版视频监控最初版用的eclipse开发的,后期改为as但是差别不大,改改eclipse版本的接口参数还是可以正常使用,大华的视频监控源码用的as开发的,相对来说难了不少,对比eclipse版本多了很多资源文件及arr依赖包,下面就具体来说说。
思路很清晰:
1.精简大华as版源码,固定参数,实现正常视频监控(能删的就删,不能删的想办法删)
2.将简化后的代码封装成cordova插件,用wex5或者ionic实现一句代码播放
3.集成到正式项目中,调试多种机型(CPU架构不同可能导致部分机型无法正常播放)
由于大华是自定义布局实现播放的,所以这次集成会有资源文件 对于类似的R文件的引用setContentView(R.layout.activity_play_online);都用下面这样的方式替换,集成后就不需要R文件了,省了好多异常
setContentView(getResources().getIdentifier("activity_play_online", "layout", this.getPackageName()));
对于依赖文件的集成可参考如下方式:
和代码同级目录建一个xx.gradle文件,里面放原项目的所有依赖
插件引入项目后会自动引入如下所示:
在build.gradle中会引入生成的 项目名-xx.gradle
资源文件的引入和代码及so包引入一样,源资源在啥目录生成时就在啥目录,要不找不到,见下图,我有个图片是放在res/mipmap下的而其他的是放在res/drawable下的,可参考下图:
plugin.xml具体怎么配置可参考我其他的两篇博客,wex5+海康摄像头 cordova插件流媒体封装来实现
在ionic或wex5中调用navigator["videoManager"].setPlayMode('ip', '端口', '用户名', '密码','视频通道号',2, this.success, this.fail);
即可,参数中的2表示辅码流,1表示主码流,success 和fail表示回调成功或者失败执行的方法
navigator["videoManager"].是在plugin.xml中定义好的
下面在看下setPlayMode方法
修改下www/js文件:方法名我也懒得改了,修改下参数即可,传递几个参数加几个,参数和页面调用的参数对应起来即可
然后在看下exec方法执行的代码,接受参数并传递到原生播放的页面即可
原生页面接受这些参数,自动登录播放即可,所有这些步骤第一步最关键,精简代码可固定播放参数,方便集成,集成后打包过程可能报各种异常,可用android stdio加载项目,根据异常解决,基本通过修改build.gradle就能解决,大多是兼容性问题
本地other.grade引入项目可以参考拍照功能的引入方式