You need to enable JavaScript to run this app.
导航
扬声器检测
最近更新时间:2024.08.20 10:23:54首次发布时间:2023.10.12 15:24:40

检测扬声器设备(一般为 PC 端),以确定用户设备是否支持所需的音视频功能。对扬声器设备进行枚举与选择、音量调节与检测。

时序图

alt

相关 API

功能点WindowsMacOS
获取音频设备管理器getAudioDeviceManagergetAudioDeviceManager
枚举扬声器枚举设备enumerateAudioPlaybackDevicesenumerateAudioPlaybackDevices
获取设备数量getCountgetCount
获取设备getDevicegetDevice:
释放设备release
切换扬声器获取音频播放设备getAudioPlaybackDevicegetAudioPlaybackDevice:
设置音频播放路由不跟随系统followSystemPlaybackDevicefollowSystemPlaybackDevice:
设置音频播放设备setAudioPlaybackDevicesetAudioPlaybackDevice:
扬声器设备音量回调onAudioDeviceVolumeChangedonAudioDeviceVolumeChanged:
扬声器音量调节(采集的音量)setPlaybackVolumesetPlaybackVolume:
扬声器测试初始化音频播放设备initAudioPlaybackDeviceForTestinitAudioPlaybackDeviceForTest:
开始音频播放设备测试,循环播放指定音频文件startAudioPlaybackDeviceTeststartAudioPlaybackDeviceTest:interval:
停止音频播放设备测试stopAudioPlaybackDeviceTeststopAudioDevicePlayTest
扬声器测试音量回调onAudioPlaybackDeviceTestVolumeonAudioPlaybackDeviceTestVolume:

常见问题

该部分介绍扬声器检测过程中的常见问题,关键词如下:

  • 音频播放路由是否跟随系统

  • 设备检测前的异常问题检测

  • 音频播放测试

  • 音量回调

  • 设备权限配置

音频播放路由是否跟随系统

  • 用户未指定音频采集/播放设备时,默认选择系统默认设备;设备变化时自动切换。

  • 可以通过 followSystemPlaybackDevice 设置音频播放路由是否跟随系统。如果将该方法的参数设置为false,即设置音频播放路由不跟随系统,那么用户就可以手动切换扬声器设备;如果设置音频播放路由跟随系统,将无法调用 setAudioPlaybackDevice 设置音频播放设备。

设备检测前的异常问题检测

在扬声器检测前,调用 initAudioPlaybackDeviceForTest 可以检测设备不存在、权限被拒绝/禁用等异常问题。

音频播放测试

调用 startAudioPlaybackDeviceTest 可以进行扬声器检测,测试启动后,会循环播放指定的音频文件;调用 stopAudioPlaybackDeviceTest 可以停止音频播放测试。

音量回调

当扬声器系统音量发生变化,触发 onAudioDeviceVolumeChanged 回调。通过监听该回调,可以感知扬声器音量变化;如果设备音量过小或处于静音状态,可以根据需要给用户相应的提示。

设备权限配置

在 macOS 系统下,需在 Info.plist 文件中设置 NSMicrophoneUsageDescription;不更改 Windows 系统设置情况下,无需申请权限即可直接访问。
具体参考 设备权限处理