setAudioRoute method

Future<int?> setAudioRoute(
  1. AudioRoute audioRoute
)

@detail api @author dixing @brief 强制切换当前的音频播放路由。默认使用 setDefaultAudioRoute{@link #RTCEngine#setDefaultAudioRoute} 中设置的音频路由。
音频播放路由发生变化时,会收到 onAudioRouteChanged{@link #IRTCEngineEventHandler#onAudioRouteChanged} 回调。 @param audioRoute 音频播放路由,参见 AudioRoute{@link #AudioRoute}。
对 Android 设备,不同的音频设备连接状态下,可切换的音频设备情况不同。参见移动端设置音频路由。 @return - 0: 调用成功。 - < 0 : 调用失败。查看 ReturnStatus{@link #ReturnStatus} 获得更多错误说明 @note - 对于绝大多数音频场景,推荐使用 setDefaultAudioRoute{@link #RTCEngine#setDefaultAudioRoute} 设置默认音频路由,并借助 RTC SDK 的音频路由自动切换逻辑即可完成。切换逻辑参见移动端设置音频路由。你应仅在例外的场景下,使用此接口,比如在接入外接音频设备时,手动切换音频路由。 - 本接口仅支持在通话模式下使用。 - 不同音频场景中,音频路由和发布订阅状态到音量类型的映射关系详见 AudioScenarioType{@link #AudioScenarioType} 。

Implementation

Future<int?> setAudioRoute(AudioRoute audioRoute) async {
  $a() => ($instance as $p_a.RTCEngine)
      .setAudioRoute(t_AudioRoute.code_to_android(audioRoute));
  $i() => ($instance as $p_i.ByteRTCEngine)
      .setAudioRoute(t_AudioRoute.code_to_ios(audioRoute));

  if (Platform.isAndroid) {
    return $a();
  } else if (Platform.isIOS) {
    return $i();
  } else {
    throw UnsupportedError(
        'Not Support Platform ${Platform.operatingSystem}');
  }
}