音频路由

  • iOS

更新时间不可用

isSpeakerphoneEnabled

检查是否启用扬声器播放音频。

Objective-C
- (BOOL)isSpeakerphoneEnabled NS_SWIFT_NAME(isSpeakerphoneEnabled());

调用时机

你可以在加入频道前或加入频道后调用该方法。

返回值

  • YES:(默认)已启用扬声器,音频将从扬声器播放。
  • NO:未启用扬声器,音频将从非扬声器设备播放,例如耳机或听筒。

所属接口类

setDefaultAudioRouteToSpeakerphone:

设置默认音频播放路由。

Objective-C
- (int)setDefaultAudioRouteToSpeakerphone:(BOOL)defaultToSpeaker NS_SWIFT_NAME(setDefaultAudioRouteToSpeakerphone(_:));

大多数手机有两个音频路由:顶部的听筒和底部的扬声器。听筒音量较低,扬声器音量较高。你可以通过该方法设置在未连接外部音频设备时,音频是通过听筒还是扬声器播放。 在不同场景下,系统的默认音频路由如下:

  • 语音通话:听筒。
  • 音频直播:扬声器。
  • 视频通话:扬声器。
  • 视频直播:扬声器。

你可以调用该方法更改默认音频路由。

注: 调用此方法设置默认音频路由后,系统的实际音频路由会随着外部音频设备(有线耳机或蓝牙耳机)的连接而变化。

调用时机

该方法需要在加入频道前调用。

参数

参数名描述
defaultToSpeaker

是否将扬声器设置为默认音频路由:

  • YES:将扬声器设置为默认音频路由。
  • NO:将听筒设置为默认音频路由。
表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0:方法调用成功。
  • < 0:方法调用失败。详见错误码了解详情和解决建议。

所属接口类

setEnableSpeakerphone:

设置是否将音频路由到扬声器。

Objective-C
- (int)setEnableSpeakerphone:(BOOL)enableSpeaker NS_SWIFT_NAME(setEnableSpeakerphone(_:));

你可以调用该方法切换当前频道中的音频路由,以满足不同的音频播放需求。

注:

  • 该方法仅设置当前频道中的音频路由,不影响默认音频路由。如果你离开当前频道并加入另一个频道,将使用默认音频路由。
  • 如果你使用了蓝牙或有线耳机等外部音频播放设备,该方法不生效。SDK 会通过外部设备播放音频。当你连接多个外部设备时,SDK 会通过最后连接的设备播放音频。

适用场景

如果 SDK 的默认音频路由或 setDefaultAudioRouteToSpeakerphone: 的设置无法满足你的需求,可以调用该方法切换当前音频路由。

调用时机

请在加入频道后调用该方法。

参数

参数名描述
enableSpeaker

设置是否启用扬声器或听筒:

  • YES:启用设备状态监测,音频路由为扬声器。
  • NO:关闭设备状态监测,音频路由为听筒。
表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0:方法调用成功。
  • < 0:方法调用失败。详见错误码了解详情和解决建议。

所属接口类

rtcEngine:didAudioRouteChanged:

本地音频路由发生变化时的回调。

Objective-C
- (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didAudioRouteChanged:(AgoraAudioOutputRouting)routing NS_SWIFT_NAME(rtcEngine(_:didAudioRouteChanged:));

该回调在本地音频路由发生变化时触发,例如从听筒切换到扬声器。

触发时机

该回调在本地音频路由发生变化时被触发。

参数

参数名描述
engine
routing

当前的音频路由。详见 AgoraAudioOutputRouting。

表格内容超出当前宽度,可横向滚动查看更多列。

所属接口类