SMeetingEngine 上,不要求在会议中,登录后即可调用。使用说明见 外设管理。
getDevices(kind:)
枚举系统设备。
返回值:
[DeviceInfo],不抛错。
平台差异:
- macOS 音频列表中包含一个指向系统默认输入 / 输出的虚拟设备
- iOS 的音频输入返回的是可用输入路由(蓝牙、有线耳机、内置麦克风等)
- iOS 不支持枚举音频输出,
kind: .audioOutput在 iOS 上返回空数组
switchMic(deviceId:)
切换麦克风输入。
返回值: 无
可能抛出: 设备切换失败时抛出底层错误。
行为按当前状态自适应:
setAudioOutput(deviceId:)
选择音频输出设备。仅 macOS 可用。
返回值: 无
可能抛出: 设备切换失败时抛出底层错误。
setSpeakerOutputEnabled(_:)
切换外放。仅 iOS 可用。
返回值: 无
可能抛出: 设置失败时抛出底层错误。
与下面的
setAudioRoute(_:) 是同一机制的两种写法,不要混着用两套状态。
音频路由(iOS)
以下接口仅 iOS 可用,用于控制声音从外放还是听筒出。可切换的目标只有这两个 —— 蓝牙 / 有线耳机由系统接管,原因见 音频路由。defaultAudioRoute
AudioRouteTarget(可读写)
持久默认输出路由,入会前设定最稳妥,长期有效。优先级低于 setAudioRoute(_:) 的临时覆盖。
setAudioRoute(_:)
会中临时切换输出路由,优先级高于
defaultAudioRoute。不抛错:外设(蓝牙 / 有线)在用时切 .speaker 会被底层跳过并记日志 —— 该操作在 iOS 上本就无效。请用 currentAudioRoute 判断实际结果。
clearAudioRouteOverride()
defaultAudioRoute。
只读状态
路由变化与中断恢复通过
meeting(_:audioRouteDidChange:)、meetingAudioRouteDidRecoverFromInterruption(_:) 上报,见 事件参考。
设备事件
设备插拔通过SMeetingDelegate 上报,见 事件参考:
meeting(_:didAddDevice:)meeting(_:didRemoveDevice:)