更新记录

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

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
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);
});

更详细接口和参数说明参考SDK文档 http://open.ys7.com/doc/zh/android/com/videogo/openapi/EZPlayer.html

隐私、权限声明

1. 本插件需要申请的系统权限列表:

麦克风权限

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件自身不采集任何数据,插件使用的萤石云开放平台 SDK采集数据请参考其官方说明:https://open.ys7.com/cn/s/index

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问