enableAudioFrameCallback method

Future<int?> enableAudioFrameCallback({
  1. required AudioFrameCallbackMethod method,
  2. required AudioFormat format,
})

@detail api @author gongzhengduo @brief 设置并开启指定的音频数据帧回调 @param method 音频回调方法,参看 AudioFrameCallbackMethod{@link #AudioFrameCallbackMethod}。
当音频回调方法设置为 AUDIO_FRAME_CALLBACK_RECORD(0)AUDIO_FRAME_CALLBACK_PLAYBACK(1)AUDIO_FRAME_CALLBACK_MIXED(2)AUDIO_FRAME_CALLBACK_CAPTURE_MIXED(5) 时,你需要在参数 format 中指定准确的采样率和声道,暂不支持设置为自动。
当音频回调方法设置为 AUDIO_FRAME_CALLBACK_REMOTE_USER(3)时,将 format 中的各个字段设置为默认值。 @param format 音频参数格式,参看 AudioFormat{@link #AudioFormat}。 @return - 0: 调用成功。 - < 0 : 调用失败。查看 ReturnStatus{@link #ReturnStatus} 获得更多错误说明 @note 开启音频回调并调用 registerAudioFrameObserver{@link #RTCEngine#registerAudioFrameObserver} 后,IAudioFrameObserver{@link #IAudioFrameObserver} 会收到对应的音频回调。两者调用顺序没有限制且相互独立。

Implementation

Future<int?> enableAudioFrameCallback(
    {required AudioFrameCallbackMethod method,
    required AudioFormat format}) async {
  $a() => ($instance as $p_a.RTCEngine).enableAudioFrameCallback(
      t_AudioFrameCallbackMethod.code_to_android(method),
      unpackObject<$p_a.AudioFormat>(format));
  $i() => ($instance as $p_i.ByteRTCEngine).enableAudioFrameCallback(
      t_AudioFrameCallbackMethod.code_to_ios(method),
      unpackObject<$p_i.ByteRTCAudioFormat>(format));

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