更新记录
1.0.1(2024-01-13)
- 增加多种截屏方式
1.0.0(2023-09-20)
海康网络摄像机,浏览摄像机视频、截屏
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:4.4 - 14.0 | armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 | × |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在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原生插件配置”->”云端插件“列表中删除该插件重新选择
前言
海康网络摄像机,浏览摄像机视频、截屏
支持定制,联系QQ252797991
let hik = uni.requireNativePlugin("wrs-hik");
- 初始化SDK
hik.initSDK()
- 添加设备
var params = {
devName: this.devName,
ip: this.ip,
port: this.port,
userName: this.userName,
password: this.password
}
hik.addDevice(params, (resp)=>{
this.showMsg(JSON.stringify(resp))
let flag = resp.flag
if(flag) { // 添加成功
this.showMsg("添加成功")
uni.navigateBack()
} else { // 添加失败
let code = resp.code
}
})
- 获取所有设备
hik.getAllDevice((resp) => {
var deviceList = resp.deviceList
if (deviceList && deviceList.length > 0) {
var itemArray = []
var length = deviceList.length
for (var i = 0; i < length; i++) {
var device = deviceList[i]
var title = "name:" + device.devName + " ip:" + device.struNetInfo.ip;
itemArray.push(title)
}
this.showActionSheet(itemArray, (index) => {
this.logout(index)
})
} else {
this.showToast("没有搜索到摄像头")
}
})
- 登录设备
hik.login({
index: index
}, (resp) => {
var flag = resp.flag
if (flag) {
this.showToast("登录成功")
} else {
this.showToast("登录失败:" + resp.code)
}
})
- 退出登录
hik.logout({
index: index
}, (resp) => {
var flag = resp.flag
if (flag) {
this.showToast("退出登录成功")
} else {
this.showToast("退出登录失败:" + resp.code)
}
})
- 删除设备
hik.logout({
index: index
}, (resp) => {
var flag = resp.flag
if (flag) {
this.showToast("退出登录成功")
} else {
this.showToast("退出登录失败:" + resp.code)
}
})
- 选择设置当前操作摄像机
// 先设置选择要预览的摄像头
hik.setCurrSelectDevIndex({
index: index
})
- 获取当前选择摄像机信息
hik.getCurrSelectDevInfo((resp) => {
this.showMsg(JSON.stringify(resp))
this.devInfo = resp.devInfo;
})
- 截屏
方式1
var timestamp = new Date().getTime();
var params = {}
params.filePath = "/sdcard/" + timestamp + ".jpg"
params.channel = 1;
// // 0- 最好,1- 较好,2- 一般
params.picQuality = 1;
params.picSize = picSize; //
NET_DVR_CaptureJPEGPicture(params, (resp) => {
this.showMsg(JSON.stringify(resp))
if (resp.status == 1) { // 成功
this.src = params.filePath
} else { // 失败
}
})
方式2(采用的是Android的图层截图)
var timestamp = new Date().getTime();
var params = {}
params.filePath = "/sdcard/" + timestamp + ".jpg"
params.useTextureView = true
// params.filePath = "/sdcard/snap.png"
this.$refs.hikview.previewSnap(params, (resp) => {
if (resp.flag) {
this.src = params.filePath
} else {
let code = resp.code
}
});
方式3
var timestamp = new Date().getTime();
var params = {}
params.filePath = "/sdcard/" + timestamp + ".jpg"
params.useTextureView = false
// params.filePath = "/sdcard/snap.png"
this.$refs.hikview.previewSnap(params, (resp) => {
if (resp.flag) {
this.src = params.filePath
} else {
let code = resp.code
}
});