你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
设备和权限问题概述
在 WebJS 通话 SDK 中,有两种类型的权限:浏览器权限和系统权限。 当应用程序需要访问用户的音频或视频输入设备时,它需要具备在浏览器和系统级别授予的权限。
如果应用程序没有所需的权限,则无法访问设备,这意味着通话中的其他参与者无法看到或听到用户。
为了避免这些问题,用户必须在浏览器提示时授予必要的权限。 如果用户意外拒绝权限或以后需要更改其权限,通常可以通过浏览器设置进行更改。
应用程序也需要该权限才能检索详细的设备列表信息。
应用程序可以调用 DeviceManager.askDevicePermission
来触发权限提示 UI。
但是,浏览器可以缓存权限结果,并在不显示权限提示 UI 的情况下返回该结果。
如果权限结果 denied
,则用户需要通过浏览器设置更新权限。
与设备和权限相关的常见问题
下面是与设备和权限相关的一些常见问题及其可能的原因:
getMicrophones API 返回空数组或不返回详细的麦克风列表
- 麦克风设备在系统中不可用。
- 未授予麦克风权限。
getSpeakers API 返回空数组或不返回详细的扬声器列表
- 扬声器设备在系统中不可用。
- 浏览器不支持扬声器枚举。
- 未授予麦克风权限。
调用 askDevicePermission 时不显示任何权限提示
- 浏览器缓存以前授予或拒绝的权限结果,并在不提示用户的情况下返回该结果。
- 请求麦克风权限时,麦克风设备不可用。
- 请求相机权限时,相机设备不可用。
askDevicePermission API 耗时太长
- 用户不会授予或拒绝权限提示。
- 设备驱动程序层响应缓慢。
后续步骤
本概述文章提供关于使用 WebJS 通话 SDK 时可能遇到的设备和权限问题的基本信息。
有关更详细的指导,请按照本故障排除指南 Device and permission issues
部分中列出的页面链接进行操作。