start method
@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。
不同平台支持的本地音效文件格式:
| mp3 | mp4 | aac | m4a | 3gp | wav | ogg | ts | wma |
| Android | Y | Y | Y | Y | Y | Y | Y | | |
| iOS/macOS | Y | Y | Y | Y | Y | Y | | | |
| Windows | Y | Y | Y | Y | Y | Y | | Y | Y |
不同平台支持的在线音效文件格式:
| mp3 | mp4 | aac | m4a | 3gp | wav | ogg | ts | wma |
| Android | Y | | Y | Y | Y | Y | | | |
| iOS/macOS | Y | | Y | Y | | Y | | | |
| Windows | Y | | Y | Y | Y | Y | | Y | Y |
@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}');
}
}