在浏览器中使用音视频通话或屏幕共享功能时,用户需授权摄像头、麦克风或屏幕录制权限。这是为了保障用户隐私并确保音视频功能的正常运行。如果用户未授权、拒绝过授权或设备权限配置不当,可能会导致无法正常采集音视频或内容共享失败。为解决此类问题,可通过小鱼易连Web SDK相关监听事件,提示引导用户重新授权,并确保正常使用入会及共享功能。
当首次尝试进行音视频通话时,浏览器会根据域名对设备使用权限进行授权,并弹出权限申请窗口,请点击“允许”以授予摄像头和麦克风的访问权限,从而正常进行音视频通话。如果您未看到提示窗口,可能是之前已拒绝过授权,您可以通过浏览器设置重新授予权限。
以下是iOS safari浏览器、Andriod微信浏览器的授权弹框图:
以下是桌面端Chrome浏览器、Edge浏览器的授权弹框图:
监听VideoAudioTrack的permission事件,如果权限被拒绝(denied),请提示用户检查设备和权限。以下是不同操作系统和浏览器的权限检查及设置步骤:
检查操作系统是否已开启摄像头和麦克风权限:
检查浏览器是否已允许摄像头或麦克风,如未授予相应权限, 可参考下图操作允许摄像头、麦克风权限。修改权限后,直接调用unmuteVideo方法开启摄像头、调用unmuteAudio方法取消静音。
以下是Chrome浏览器、Edge浏览器权限设置示例图:
在移动端,如果选择了禁止授权,通常情况下刷新页面不会重新弹出授权对话框。此时需要关闭页面或重新启动浏览器,才能触发授权对话框。检查不同系统相机和麦克风权限:
监听ContentTrack的track-error事件,如果收到错误码 XYSDK:950505
或 XYSDK:950508
,提示用户重新授权“屏幕录制”权限并重启浏览器。以下是不同版本浏览器的操作步骤:
提示示例图如下:
以下是Chrome、Edge浏览器操作示例图:
peopleTrack.on('permission', (e: ICurrentPermission)=> {
const { camera, } = e;
if(camera === PermissionType.DENIED) {
// 提示用户检查摄像头权限
}
if(microphone === PermissionType.DENIED) {
// 提示用户检查摄像头权限
}
});
contentTrack.on('track-error', (e: IReturnResult) => {
XYRTC.logger.log('[WEB] share screen track error: ', e);
const { msg = '', code } = e;
// 屏幕分享失败,请在系统设置中重新授权屏幕录制权限,并重启浏览器
if (code === 'XYSDK:950505' || code === 'XYSDK:950508') {
// 提示用户重新授权屏幕录制权限
} else {
msg && XYMessage.info(msg || i18n.t('share_content_fail'));
}
})