playEffect method

Future<void> playEffect (
  1. int soundId,
  2. String filePath,
  3. int loopCount,
  4. double pitch,
  5. double pan,
  6. double gain,
  7. bool publish
)

播放指定音效文件。 该方法播放指定的本地或在线音效文件。你可以在该方法中设置音效文件的播放次数、音调、音效的空间位置和增益,以及远端用户是否能听到该音效。

你可以多次调用该方法,通过传入不同的音效文件的 soundIdfilePath,同时播放多个音效文件,实现音效叠加。 为获得最佳用户体验,我们建议同时播放的音效文件不要超过 3 个。

调用该方法播放音效结束后,SDK 会触发 RtcEngineEventHandler.audioEffectFinished 回调。

Parameter soundId 音效的 ID。每个音效均有唯一的 ID。如果你已通过 RtcEngine.preloadEffect 将音效加载至内存, 确保这里的 soundIDRtcEngine.preloadEffect 设置的 soundId 相同。

Parameter filePath 待播放的音效文件的绝对路径或 URL 地址。如 /sdcard/emulated/0/audio.mp4。建议填写文件后缀名。 若无法确定文件后缀名,可不填。支持的音频格式包括:mp3、mp4、m4a、aac、3gp、mkv 及 wav。

Parameter loopCount 音效文件循环播放的次数:

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
  });
}