setAudioAlignmentProperty method

Future<int?> setAudioAlignmentProperty({
  1. required string streamId,
  2. required AudioAlignmentMode mode,
})

@detail api @hidden internal use only @author majun.lvhiei @brief 在听众端,设置订阅的所有远端音频流精准对齐后播放。 @param streamId 流 ID,作为对齐基准的远端音频流。一般选择主唱的音频流。
你必须在收到 onUserPublishStreamAudio{@link #IRTCRoomEventHandler#onUserPublishStreamAudio}, 确认此音频流已发布后,调用此 API。 @param mode 是否对齐,默认不对齐。参看 AudioAlignmentMode{@link #AudioAlignmentMode}。 @return - 0: 调用成功。 - < 0 : 调用失败。查看 ReturnStatus{@link #ReturnStatus} 获得更多错误说明 @note - 你必须在实时合唱场景下使用此功能。在加入房间时,所有人应设置 ChannelProfile{@link #ChannelProfile} 为 CHANNEL_PROFILE_CHORUS。 - 订阅的所有远端流必须通过 startAudioMixing 开启了背景音乐混音,并将 AudioMixingConfig中的 syncProgressToRecordFrame 设置为 true。 - 如果订阅的某个音频流延迟过大,可能无法实现精准对齐。 - 合唱的参与者不应调用此 API,因为调用此 API 会增加延迟。如果希望从听众变为合唱参与者,应关闭对齐功能。

Implementation

Future<int?> setAudioAlignmentProperty(
    {required string streamId, required AudioAlignmentMode mode}) async {
  $a() => ($instance as $p_a.RTCEngine).setAudioAlignmentProperty(
      streamId, t_AudioAlignmentMode.code_to_android(mode));
  $i() => ($instance as $p_i.ByteRTCEngine).setAudioAlignmentProperty(
      streamId, t_AudioAlignmentMode.code_to_ios(mode));

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