From c3aec72e764805e9c171327c7b2749b1a4201232 Mon Sep 17 00:00:00 2001 From: denghaohaoya <1725652099@qq.com> Date: Wed, 8 Apr 2026 00:14:04 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=89=E5=8D=93=E8=A7=86=E9=A2=91=E7=9B=91?= =?UTF-8?q?=E6=8E=A7=E6=8F=92=E4=BB=B6=E6=9B=B4=E6=96=B0=EF=BC=8C=E8=BF=98?= =?UTF-8?q?=E8=A6=81=E5=9B=9E=E6=94=BE=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manifest.json | 9 +- .../android/ipc-video-plugin-release.aar | Bin 0 -> 13690 bytes package_a/monitor/monitor.nvue | 92 ++++- package_a/playback/playback.nvue | 353 ++++++++++++++++++ pages.json | 6 + pages/index.vue | 16 +- 6 files changed, 461 insertions(+), 15 deletions(-) create mode 100644 nativeplugins/ry-ipc-video/android/ipc-video-plugin-release.aar create mode 100644 package_a/playback/playback.nvue diff --git a/manifest.json b/manifest.json index 529278f..2c8932d 100644 --- a/manifest.json +++ b/manifest.json @@ -34,7 +34,11 @@ "", "", "", - "" + "", + "", + "", + "", + "" ], "abiFilters" : [ "arm64-v8a" ] }, @@ -42,7 +46,8 @@ "dSYMs" : false, "privacyDescription" : { "NSCameraUsageDescription" : "需要使用相机扫描条码", - "NSPhotoLibraryUsageDescription" : "需要访问相册选择图片扫码" + "NSPhotoLibraryUsageDescription" : "需要访问相册选择图片扫码", + "NSMicrophoneUsageDescription" : "需要使用麦克风进行监控视频的语音对讲或录制" } }, "sdkConfigs" : {} diff --git a/nativeplugins/ry-ipc-video/android/ipc-video-plugin-release.aar b/nativeplugins/ry-ipc-video/android/ipc-video-plugin-release.aar new file mode 100644 index 0000000000000000000000000000000000000000..3c62e9457e17131f3a9c4150d053baa206cc4b41 GIT binary patch literal 13690 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 Y状态:{{ statusMsg }} + + + 正在录像... + + @@ -61,6 +66,10 @@ + + + + @@ -70,6 +79,7 @@ return { deviceUid: 'HLTY036190SYNSK', // 默认使用你 Demo 里的测试 UID isPlaying: false, + isRecording: false, // 是否正在录像 statusMsg: '等待操作', currentChannel: 0, // 0对应CH1, 1对应CH2... currentStreamType: 1, // 1为高清(主码流),2为标清(子码流) @@ -87,7 +97,18 @@ } }, onUnload() { - // 页面卸载时停止播放,释放资源 + // 如果正在录像,必须先停止录像 + if (this.isRecording) { + this.endRecord(); + } + // 页面卸载时停止播放,释放资源,防止占用通道 + this.stopPlay(); + }, + onHide() { + // 页面切到后台或跳转到其他页面时,也停止录像和播放,释放通道 + if (this.isRecording) { + this.endRecord(); + } this.stopPlay(); }, methods: { @@ -145,15 +166,15 @@ this.$refs.ipcVideo.start(); } else { console.error('start 方法不存在,可能插件注册失败或版本未生效'); - uni.showToast({ title: '插件方法未找到', icon: 'none' }); + // uni.showToast({ title: '插件方法未找到', icon: 'none' }); // 暂时注释掉 } } else { - uni.showToast({ title: '插件未加载成功', icon: 'none' }); + // uni.showToast({ title: '插件未加载成功', icon: 'none' }); // 暂时注释掉 } // #endif // #ifndef APP-PLUS - uni.showToast({ title: '仅App端支持', icon: 'none' }); + // uni.showToast({ title: '仅App端支持', icon: 'none' }); // 暂时注释掉 // #endif }, stopPlay() { @@ -166,6 +187,38 @@ } // #endif }, + beginRecord() { + // #ifdef APP-PLUS + if (this.$refs.ipcVideo && typeof this.$refs.ipcVideo.startRecord === 'function') { + // 将 _doc/ 相对路径转换为手机上的绝对绝对路径 + const savePath = plus.io.convertLocalFileSystemURL("_doc/camera_record_" + Date.now() + ".mp4"); + + this.$refs.ipcVideo.startRecord({ + path: savePath, + width: 1920, // 可选,默认 1920 + height: 1080, // 可选,默认 1080 + fps: 15 // 可选,默认 10 + }); + + this.statusMsg = '正在录像...'; + this.isRecording = true; + console.log("正在录像,保存到:", savePath); + // uni.showToast({ title: '已开始录像', icon: 'success' }); // 暂时注释掉,使用 isRecording 替代 + } else { + // uni.showToast({ title: '原生插件缺少录像方法', icon: 'none' }); // 暂时注释掉 + } + // #endif + }, + endRecord() { + // #ifdef APP-PLUS + if (this.$refs.ipcVideo && typeof this.$refs.ipcVideo.stopRecord === 'function') { + this.$refs.ipcVideo.stopRecord(); + this.statusMsg = '录像已保存'; + this.isRecording = false; + // uni.showToast({ title: '录像已保存到 _doc 目录', icon: 'success' }); // 暂时注释掉 + } + // #endif + }, onVideoStatusChange(e) { try { console.log("视频状态改变:", e); @@ -183,22 +236,22 @@ // 捕获来自 Java 层主动抛出的原生崩溃错误 if (status === 'error' && msg && msg.indexOf('原生启动崩溃') !== -1) { - uni.showModal({ + /* uni.showModal({ title: '原生插件崩溃', content: msg, showCancel: false - }); + }); */ // 暂时注释掉 this.isPlaying = false; return; } // 处理特定的连接错误状态 if (status === 'error' || msgParam === 7 || msgParam === 14) { - uni.showToast({ + /* uni.showToast({ title: msg ? msg : '摄像机离线,请检查设备网络', icon: 'none', duration: 3000 - }); + }); */ // 暂时注释掉 // 可以在这里做一些重置操作 this.isPlaying = false; } else if (status === 'playing') { @@ -207,18 +260,18 @@ } else { // 如果 e.detail 是空对象或者 undefined,提示异常 console.error("收到空的状态事件:", e); - uni.showToast({ + /* uni.showToast({ title: '收到空状态,原生可能发生异常', icon: 'none' - }); + }); */ // 暂时注释掉 } } catch (err) { console.error("解析状态回调时发生前端异常:", err); - uni.showModal({ + /* uni.showModal({ title: '前端回调解析异常', content: err.toString(), showCancel: false - }); + }); */ // 暂时注释掉 } } } @@ -322,4 +375,19 @@ color: #ffffff; background-color: #007aff; } +.recording-indicator { + position: absolute; + top: 40rpx; + right: 40rpx; + background-color: rgba(255, 0, 0, 0.7); + padding: 10rpx 20rpx; + border-radius: 10rpx; + flex-direction: row; + align-items: center; +} +.recording-text { + color: #ffffff; + font-size: 24rpx; + font-weight: bold; +} \ No newline at end of file diff --git a/package_a/playback/playback.nvue b/package_a/playback/playback.nvue new file mode 100644 index 0000000..4ed1c85 --- /dev/null +++ b/package_a/playback/playback.nvue @@ -0,0 +1,353 @@ + + + + + \ No newline at end of file diff --git a/pages.json b/pages.json index 9b56139..ef163c4 100644 --- a/pages.json +++ b/pages.json @@ -67,6 +67,12 @@ "style": { "navigationBarTitleText": "" } + }, + { + "path": "playback/playback", + "style": { + "navigationBarTitleText": "" + } } ] } diff --git a/pages/index.vue b/pages/index.vue index 47ccd82..6851ba8 100644 --- a/pages/index.vue +++ b/pages/index.vue @@ -179,7 +179,7 @@ 实时监控 - + 查看回放 @@ -370,6 +370,20 @@ export default { }) // #endif }, + goToPlayback(){ + // #ifdef MP + uni.showToast({ + title: '小程序暂不支持查看监控回放请使用app', + icon: 'none' + }) + // #endif + + // #ifndef MP + uni.navigateTo({ + url: '/package_a/playback/playback' + }) + // #endif + }, goToAsset() { uni.navigateTo({ url: '/package_a/asset/asset'