start method

Future<int?> start(
  1. int effectId,
  2. string filePath,
  3. AudioEffectPlayerConfig config
)

@detail api @brief 开始播放音效文件。
可以通过传入不同的 ID 和 filepath 多次调用本方法,以实现同时播放多个音效文件,实现音效叠加。 @param effectId 音效 ID。用于标识音效,请保证音效 ID 唯一性。
如果使用相同的 ID 重复调用本方法后,上一个音效会停止,下一个音效开始,并收到 onAudioEffectPlayerStateChanged{@link #IAudioEffectPlayerEventHandler#onAudioEffectPlayerStateChanged}。 @param filePath 音效文件路径。
支持在线文件的 URL、本地文件的 URI、本地文件的绝对路径或以 /assets/ 开头的本地文件路径。对于在线文件的 URL,仅支持 https 协议。
推荐的音效文件采样率:8KHz、16KHz、22.05KHz、44.1KHz、48KHz。
不同平台支持的本地音效文件格式:

mp3mp4aacm4a3gpwavoggtswma
AndroidYYYYYYY
iOS/macOSYYYYYY
WindowsYYYYYYYY
不同平台支持的在线音效文件格式:
mp3mp4aacm4a3gpwavoggtswma
AndroidYYYYY
iOS/macOSYYYY
WindowsYYYYYYY
@param config 音效配置,详见 AudioEffectPlayerConfig{@link #AudioEffectPlayerConfig}。 @return - 0: 调用成功。 - < 0 : 调用失败。查看 ReturnStatus{@link #ReturnStatus} 获得更多错误说明 @note - 如果已经通过 preload{@link #IAudioEffectPlayer#preload} 将文件加载至内存,确保此处的 ID 与 preload{@link #IAudioEffectPlayer#preload} 设置的 ID 相同。 - 开始播放音效文件后,可以调用 stop{@link #IAudioEffectPlayer#stop} 方法停止播放音效文件。

Implementation

Future<int?> start(
    int effectId, string filePath, AudioEffectPlayerConfig config) async {
  $a() => ($instance as $p_a.IAudioEffectPlayer).start(
      effectId, filePath, unpackObject<$p_a.AudioEffectPlayerConfig>(config));
  $i() => ($instance as $p_i.ByteRTCAudioEffectPlayer).start(effectId,
      filePath, unpackObject<$p_i.ByteRTCAudioEffectPlayerConfig>(config));

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