你当前正在访问 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 部分中列出的页面链接进行操作。