playEffect method
播放指定音效文件。 该方法播放指定的本地或在线音效文件。你可以在该方法中设置音效文件的播放次数、音调、音效的空间位置和增益,以及远端用户是否能听到该音效。
你可以多次调用该方法,通过传入不同的音效文件的 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
:音效文件在本地播放的同时,会发布到 Agora 云上,因此远端用户也能听到该音效。false
:音效文件不会发布到 Agora 云上,因此只能在本地听到该音效。
Implementation
@override
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
});
}