pushExternalAudioFrame method

Future<int?> pushExternalAudioFrame(
  1. AudioFrame audioFrame
)

@detail api @brief 推送用于混音的 PCM 音频帧数据 @param audioFrame 音频帧,详见 AudioFrame{@link #AudioFrame}。
- 音频采样格式必须为 S16。音频缓冲区内的数据格式必须为 PCM,其容量大小应该为 audioFrame.samples × audioFrame.channel × 2。 - 必须指定具体的采样率和声道数,不支持设置为自动。 @return - 0: 成功 - < 0: 失败 @note - 调用该方法前,须通过 openWithCustomSource{@link #IMediaPlayer#openWithCustomSource} 启动外部音频流混音。 - 使用参考建议:首次推送数据,请在应用侧先缓存一定数据(如 200 毫秒),然后一次性推送过去;此后的推送操作定时 10 毫秒一次,并且每次的音频数据量为 10 毫秒数据量。 - 如果要暂停播放,暂停推送即可。

Implementation

Future<int?> pushExternalAudioFrame(AudioFrame audioFrame) async {
  $a() => ($instance as $p_a.IMediaPlayer)
      .pushExternalAudioFrame(unpackObject<$p_a.AudioFrame>(audioFrame));
  $i() => ($instance as $p_i.ByteRTCMediaPlayer).pushExternalAudioFrame(
      unpackObject<$p_i.ByteRTCAudioFrame>(audioFrame));

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