Future<void> playEffect (
int soundId,
String filePath,
int loopCount,
double pitch,
double pan,
double gain,
bool publish
)
播放指定音效文件。 该方法播放指定的本地或在线音效文件。你可以在该方法中设置音效文件的播放次数、音调、音效的空间位置和增益,以及远端用户是否能听到该音效。
你可以多次调用该方法,通过传入不同的音效文件的 soundId 和 filePath,同时播放多个音效文件,实现音效叠加。 为获得最佳用户体验,我们建议同时播放的音效文件不要超过 3 个。
调用该方法播放音效结束后,SDK 会触发 RtcEngineEventHandler.audioEffectFinished 回调。
Parameter soundId 音效的 ID。每个音效均有唯一的 ID。如果你已通过 RtcEngine.preloadEffect 将音效加载至内存, 确保这里的 soundID 与 RtcEngine.preloadEffect 设置的 soundId 相同。
Parameter filePath 待播放的音效文件的绝对路径或 URL 地址。如 /sdcard/emulated/0/audio.mp4。建议填写文件后缀名。 若无法确定文件后缀名,可不填。支持的音频格式包括:mp3、mp4、m4a、aac、3gp、mkv 及 wav。
Parameter loopCount 音效文件循环播放的次数:
- 0:播放音效文件一次。
- 1:播放音效文件两次。
- -1:无限循环播放音效文件,直至调用 RtcEngine.stopEffect 或 RtcEngine.stopAllEffects 后停止。
Parameter pitch 音效的音调。取值范围为 0.5,2.0。默认值为 1.0,代表原始音调。取值越小,则音调越低。
Parameter pan 音效的空间位置。取值范围为 -1.0,1.0:
- -1.0:音效出现在左边。
- 0:音效出现在正前边。
- 1.0:音效出现在右边。
Parameter gain 音效的音量。取值范围为 0.0,100.0。100.0 为默认值,代表原始音量。取值越小,则音量越低。
Parameter publish 是否将音效发布到远端:
true:音效文件在本地播放的同时,会发布到 AR 云上,因此远端用户也能听到该音效。false:音效文件不会发布到 AR 云上,因此只能在本地听到该音效。
Implementation
Future<void> playEffect(int soundId, String filePath, int loopCount,
double pitch, double pan, double gain, bool publish) {
return _invokeMethod('playEffect', {
'soundId': soundId,
'filePath': filePath,
'loopCount': loopCount,
'pitch': pitch,
'pan': pan,
'gain': gain,
'publish': publish
});
}

