更新记录
1.9(2024-03-26)
1、修复由打包机更新导致iOS打包失败问题。 2、更新插件android端SDK到最新版本5.10.1,iOS端SDK到最新版本5.10。
1.8(2023-09-26)
修复插件ios端页面关闭时闪退bug。
1.7(2023-09-13)
更新Android端SDK版本到5.4.1。
查看更多平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:5.0 - 14.0 | armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 | 适用版本区间:9 - 17 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios
注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择
萤石云开放平台SDK插件接口
一、SDK插件
1、插件对象
//SDK插件对象
var Ezviz = uni.requireNativePlugin('Ezviz-SDK');
2、检测麦克风权限
Ezviz.checkPermission(function(res){
console.log(res);
if (res.result == true) {
//授权成功
} else {
//权限被拒绝
}
});
3、默认日志开关状态
/** * sdk日志开关,正式发布需要去掉 */
Ezviz.showSDKLog(true);
4、设置是否支持P2P取流
/** * 设置是否支持P2P取流,详见api */
Ezviz.enableP2P(false);
5、初始化
/** * APP_KEY请替换成自己申请的 */
Ezviz.initLib("57000d257af14abbb0aeda6a66d4961c");
6、授权
//授权
Ezviz.setAccessToken("at.c2dx310xb4nfxv199wljpuzu3x1f89nh-39jy21iltd-1wyoynf-pdkiqe022");
7、云台控制
//云台控制
var deviceSerial = "G16624272";//设备序列号
var cameraNo = 1;//通道号
//ptz控制命令
//android:PTZ_UP(上)=0;PTZ_DOWN(下)=1;PTZ_LEFT(左)=2;PTZ_RIGHT(右)=3;PTZ_ZOOMIN(画面放大)=8;PTZ_ZOOMOUT(画面缩小)=9;
var command = 1;
var action = 1;//控制启动/停止 1-启动 2-停止
var speed = 1;//云台速度:0-慢,1-适中,2-快
Ezviz.controlPTZ(deviceSerial, cameraNo, command, action, speed, function(ret){
//ret == true 成功 ret ==false 失败
console.log(ret);
});
二、对讲插件
1、对讲插件对象
//对接插件对象
var EzvizTalk = uni.requireNativePlugin('Ezviz-Talk');
2、创建对讲播放器
//创建对讲播放器
EzvizTalk.createPlayer("G16624272", 1);
3、设置回调事件处理
//设置回调事件处理
EzvizTalk.setHandler(function(res){
console.log(res);
});
4、设备加密的需要传入密码
//设备加密的需要传入密码
//传入视频加密密码,用于加密视频的解码,该接口可以在收到ERROR_INNER_VERIFYCODE_NEED或ERROR_INNER_VERIFYCODE_ERROR错误回调时调用
//verifyCode 视频加密密码,默认为设备的6验证码
EzvizTalk.setPlayVerifyCode("verifyCode");
5、半双工对讲
//注意对于半双工对讲:需要调用上面接口开启对讲
//开启对讲后能听到设备端声音,但是设备端听不到自己的声音,需要以下操作setVoiceTalkStatus
//设备端听,手机端说
talk.setVoiceTalkStatus(true);
//手机端听,设备端说
talk.setVoiceTalkStatus(false);
6、开始对讲
//开始对讲
EzvizTalk.startVoiceTalk(true);
7、停止对讲
//停止对讲
EzvizTalk.stopVoiceTalk();
8、切换听筒模式
//切换听筒模式 (true)听筒模式 (false)耳机模式
EzvizTalk.setSpeakerphoneOn(true);
三、视频预览插件
1、视频预览标签,嵌入标签当前页面必需nvue页面
<ezviz_video_view ref="videoPlayer" :style="`width: 100%;height: 200px;`"></ezviz_video_view>
2、视频插件对象,必需在mounted里和之后可以获取,不能在onLoad里调用
var videoPlayer = this.$refs.videoPlayer;
3、创建对讲播放器
//创建播放器
var videoPlayer = this.$refs.videoPlayer;
videoPlayer.createPlayer("G16624272", 1);
4、设置回调事件处理
//设置回调事件处理
var videoPlayer = this.$refs.videoPlayer;
videoPlayer.setHandler(function(res){
console.log(res);
});
5、设备加密的需要传入密码
//设备加密的需要传入密码
//传入视频加密密码,用于加密视频的解码,该接口可以在收到ERROR_INNER_VERIFYCODE_NEED或ERROR_INNER_VERIFYCODE_ERROR错误回调时调用
//verifyCode 视频加密密码,默认为设备的6验证码
var videoPlayer = this.$refs.videoPlayer;
videoPlayer.setPlayVerifyCode("verifyCode");
6、开启预览
//开始播放
var videoPlayer = this.$refs.videoPlayer;
videoPlayer.startRealPlay(function(ret){
//ret == true 成功 ret ==false 失败
console.log(ret);
});
7、停止预览
//停止播放
var videoPlayer = this.$refs.videoPlayer;
videoPlayer.stopRealPlay();
8、切换听筒模式
//切换听筒模式 (true)听筒模式 (false)耳机模式
var videoPlayer = this.$refs.videoPlayer;
videoPlayer.setSpeakerphoneOn(true);
9、打开声音
//声音开
var videoPlayer = this.$refs.videoPlayer;
videoPlayer.openSound(function(ret){
//ret == true 成功 ret ==false 失败
console.log(ret);
});
10、关闭声音
//静音
var videoPlayer = this.$refs.videoPlayer;
videoPlayer.closeSound(function(ret){
//ret == true 成功 ret ==false 失败
console.log(ret);
});
11、截图
//截图
var videoPlayer = this.$refs.videoPlayer;
videoPlayer.capturePicture(function(imageBase64Data){
//图片base64数据(不含头部信息)
});
12、设置sdcard录像和云存储录像回放速度
var videoPlayer = this.$refs.videoPlayer;
/*/倍速
EZOPENSDK_PLAY_RATE_1_16 = 9, //以1/16倍速度播放
EZOPENSDK_PLAY_RATE_1_8 = 7, //以1/8倍速度播放
EZOPENSDK_PLAY_RATE_1_4 = 5, //以1/4倍速度播放
EZOPENSDK_PLAY_RATE_1_2 = 3, //以1/2倍速播放
EZOPENSDK_PLAY_RATE_1 = 1, //以正常速度播放
EZOPENSDK_PLAY_RATE_2 = 2, //以2倍速播放
EZOPENSDK_PLAY_RATE_4 = 4, //以4倍速度播放
EZOPENSDK_PLAY_RATE_8 = 6, //以8倍速度播放
EZOPENSDK_PLAY_RATE_16 = 8, //以16倍速度播放
EZOPENSDK_PLAY_RATE_32 = 10, //以32倍速度播放
//*/
var rate = 1;
var mode = 0;//0代表4倍速及其以下全帧,以上则抽帧;1代表均使用抽帧;2代表均使用全帧,达不到要求则降速
videoPlayer.setPlaybackRate(rate, mode, function(ret){
//ret == true 成功 ret ==false 失败
console.log(ret);
});
13、开始云存储远程回放
var videoPlayer = this.$refs.videoPlayer;
videoPlayer.startPlaybackFromCloud({
deviceSerial:"G16624272",// 设备序列号
cameraNo:1,// 设备通道号
fileId:"fileId",// 云存储录像文件Id
startTime:0,// 云存储录像文件开始时间 时间戳
stopTime:0,// 云存储录像文件结束时间 时间戳
coverPic:"",// 云存储录像截图地址
downloadPath:"",// 云存储录像下载地址
encryption:"",// 云存储图片加密密码,如果是[NSNull null]或者nil指针则图片不加密
iStorageVersion:1, //云存储类别:1 单文件存储模式;2 连续存储模式;3 待定
videoType:0//云存储录像类型,默认为0,表示不属于云存储录像
}, function(res){
console.log(res);//true=成功 false=失败
});
14、开始远程SD卡回放
var videoPlayer = this.$refs.videoPlayer;
videoPlayer.startPlaybackFromDevice({
startTime:0,// 云存储录像文件开始时间 时间戳
stopTime:0// 云存储录像文件结束时间 时间戳
}, function(ret){
//ret == true 成功 ret ==false 失败
console.log(ret);
});
15、暂停远程回放播放
var videoPlayer = this.$refs.videoPlayer;
videoPlayer.pausePlayback(function(ret){
//ret == true 成功 ret ==false 失败
console.log(ret);
});
16、恢复远程回放播放
var videoPlayer = this.$refs.videoPlayer;
videoPlayer.resumePlayback(function(ret){
//ret == true 成功 ret ==false 失败
console.log(ret);
});
17、停止远程回放
var videoPlayer = this.$refs.videoPlayer;
videoPlayer.stopPlayback(function(ret){
//ret == true 成功 ret ==false 失败
console.log(ret);
});
18、根据偏移时间播放 拖动进度条时调用此接口。先停止当前播放,再把offsetTime作为起始时间按时间回放
var videoPlayer = this.$refs.videoPlayer;
var offsetTime = 0;//录像偏移时间
videoPlayer.seekPlayback(function(ret){
//ret == true 成功 ret ==false 失败
console.log(ret);
});
19、开始本地直播流录像功能
var videoPlayer = this.$refs.videoPlayer;
var path = plus.io.convertLocalFileSystemURL('_doc') + "/video.mp4";//文件存储路径
videoPlayer.startLocalRecordWithFile(function(ret){
//ret == true 成功 ret ==false 失败
console.log(ret);
});
20、结束本地直播流录像
var videoPlayer = this.$refs.videoPlayer;
videoPlayer.stopLocalRecord(function(ret){
//ret == true 成功 ret ==false 失败
console.log(ret);
});