You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询:azure-communication-calling的getSpeakers()在移动设备无法获取扬声器列表

Azure Communication Calling getSpeakers() 移动设备支持问题

DeviceManager.getSpeakers() 在移动设备(Android、iPhone/iPad)及Mac Chrome上的支持存在明确限制,并非全平台兼容,这是由浏览器底层API限制和平台音频架构差异导致的:

  • 平台与浏览器的核心限制:

    • Windows Chrome:完全支持浏览器的MediaDevices.enumerateDevices() API枚举音频输出设备,因此getSpeakers()能正常返回完整的扬声器列表。
    • Android Chrome:受移动系统音频架构限制,通常只能识别默认系统扬声器,无法枚举其他可选输出设备(如蓝牙音箱需用户在系统层面切换后才能生效,无法通过API提前枚举)。
    • iPhone/iPad 上的Chrome:基于WebKit内核,enumerateDevices() API不会返回音频输出设备列表,直接导致getSpeakers()返回空集合。
    • Mac Chrome:部分版本对内置扬声器以外的输出设备枚举支持不完善,可能返回空或仅默认设备。
  • 替代解决方案:

    • 移动设备上优先使用getDefaultSpeaker()获取系统默认输出设备,避免依赖getSpeakers()的枚举结果。
    • 提示用户通过系统设置切换音频输出设备(如蓝牙音箱、耳机),而非在应用内选择。
    • 监听deviceChanged事件,当系统音频设备切换时,重新获取默认扬声器信息并更新应用逻辑。

内容的提问来源于stack exchange,提问作者Alvin Saldanha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 12:55:15