HarmonyOS 鸿蒙Next webview加载网页使用到webrtc时多媒体获取失败
HarmonyOS 鸿蒙Next webview加载网页使用到webrtc时多媒体获取失败
webview加载网页使用到webrtc,相机和麦克风授权后,调用navigator.mediaDevices.getUserMedia()
方法获取多媒体设备报错
错误name
是NotReadableError
错误message
是DOMException: Could not start video source
,去掉相机调用正常。
再查看系统设置的“隐私和安全”,相机和麦克风都没有访问记录。
个人猜测虽然程序申请权限且用户已经授权了,但实际系统是没有给权限。
测试代码
webviewController: web_webview.WebviewController = new web_webview.WebviewController();
Web({
src: ‘xxxx’,
controller: this.webviewController
}).onPermissionRequest((event) => {
if (event) { // 获取网页所请求的权限资源列表
const arr = event.request.getAccessibleResource()
let message = ‘’
arr.forEach(item => {
console.log(item)
if (item == ‘TYPE_VIDEO_CAPTURE’) {
message += ‘视频捕获资源,例如相机。\n’
} else if (item == ‘TYPE_AUDIO_CAPTURE’) {
message += ‘音频捕获资源,例如麦克风。\n’
}
})
AlertDialog.show({
title: ‘权限申请’,
message: message,
primaryButton: {
value: ‘拒绝’,
action: () => { // 拒绝网页所请求的权限
event.request.deny()
}
},
secondaryButton: {
value: ‘授权’,
action: () => { // 对网页访问的给定权限进行授权。
event.request.grant(arr)
}
},
cancel: () => { // 拒绝网页所请求的权限
event.request.deny()
}
})
}
})
有人能帮忙看下吗?
更多关于HarmonyOS 鸿蒙Next webview加载网页使用到webrtc时多媒体获取失败的实战教程也可以访问 https://www.itying.com/category-93-b0.html
2 回复