音频路由是指 app 在播放音频时使用的音频输出设备。移动端常见的音频路由有听筒、扬声器、有线耳机和蓝牙耳机。
本文介绍如何在移动端设置音频路由为听筒或扬声器。
SDK 默认的音频路由受 SDK 类型和频道场景影响。下表展示了默认的音频路由:
SDK 类型\频道场景 | 通信场景 | 直播场景 |
---|---|---|
音频 SDK | 听筒 | 扬声器 |
视频 SDK | 扬声器 | 扬声器 |
disableVideo
、enableLocalVideo
、muteLocalVideoStream
或 muteAllRemoteVideoStreams
等方法关闭视频,则音频路由会自动切换到音频 SDK 默认的音频路由。如果默认的音频路由无法满足你的使用需求,你可以调用如下方法切换音频路由:
setDefaultAudioRouteToSpeakerphone
: 在加入频道前调用,切换默认的音频路由。成功切换后,SDK 会默认使用新的音频路由。setEnableSpeakerphone
: 在加入频道后调用,切换当前的音频路由。该方法只切换当前频道内使用的音频路由,不会影响默认的音频路由。如果用户离开当前频道并加入新的频道,则 SDK 还是会使用默认的音频路由。成功切换音频路由后,SDK 会触发 onAudioRouteChanged
回调提示音频路由已更改。
如需查询当前音频路由是否为扬声器,你可以调用 isSpeakerphoneEnabled
。
如果 SDK 使用媒体音量,则音频路由会受到如下影响:
你可以参考如何区分媒体音量和通话音量了解 SDK 使用媒体音量的场景。
如果用户使用了有线耳机、蓝牙耳机等外置音频播放设备,则音频只会通过外置设备播放,SDK 无法切换音频路由为听筒或扬声器。当有多个外置设备时,音频会通过最后一个接入的外置设备播放。
setEnableSpeakerphone
> setDefaultAudioRouteToSpeakerphone
> SDK 默认的音频路由。setEnableSpeakerphone
> setDefaultAudioRouteToSpeakerphone
> SDK 默认的音频路由。音频路由的设置受音量类型、是否有外置播放设备影响,请从如下方面排查问题:
是否使用了有线耳机、蓝牙耳机等外置设备?如果是,则用户要先移除外置播放设备,才能将音频路由设为听筒或者扬声器。
是否可以成功切换为扬声器,但无法切换为听筒?如果是,则可能是音量类型导致的问题,声网推荐你将 SDK 升级至 3.5.0 或之后版本。