播放音效
功能描述
用户可以同时播放多个音效文件,给自己和其他与会者听,用于烘托气氛。
支持播放wav、pcm和单声道mp3音频文件,支持本地或在线文件路径。
实现过程
- 加入房间
参考接口调用流程中加入房间的时序图步骤加入房间。
- 播放音效文件
调用playAudioClip接口可以播放一个音效文件。可以同时播放多个音效文件,不同音效文件用不同的soundId参数进行区别。
int soundId = 0; //音效文件ID [rtcEngine playAudioClip:soundId filePath: [[NSBundle mainBundle] pathForResource:@"test.mp3" ofType:@""] loop:1 pitch:0.00 pan:0.00 gain:100 publish:1 startPos:0];
- 设置音效文件音量
音效文件播放过程中,可以调用setVolumeOfAudioClip设置音效文件播放音量。
音量大小,范围为0-100。
int soundId = 0; //音效文件ID [rtcEngine setVolumeOfAudioClip:soundId volume:50];
- 获取音效文件总时长
播放过程中可以调用getAudioClipDuration获取音效文件总时长,可用于刷新界面的播放进度条。
int soundId = 0; //音效文件ID int duration = [rtcEngine getAudioClipDuration: [[NSBundle mainBundle] pathForResource:@"test.mp3" ofType:@""]]; //根据当前总时长刷新界面进度条
- 获取音效文件播放位置
播放过程中可以调用getAudioClipCurrentPosition获取音效文件播放位置,可用于刷新界面的播放进度条。
int soundId = 0; //音效文件ID int pos = [rtcEngine getAudioClipCurrentPosition:soundId]; //根据当前播放位置刷新界面进度条
- 设置音效文件播放位置
播放过程中可以调用setAudioClipPosition设置音效文件播放位置,可用于通过拖动进度条改变音效文件的播放位置。
int soundId = 0; //音效文件ID [rtcEngine setAudioClipPosition:soundId pos:50];
- 暂停播放音效文件
调用pauseAudioClip接口可以暂停播放一个音效文件。调用pauseAllAudioClips暂停播放所有正在播放的音效文件。
int soundId = 0; //音效文件ID [rtcEngine pauseAudioClip:soundId];
- 恢复播放暂停的音效文件
音频文件暂停播放后,可以调用resumeAudioClip接口可以恢复播放之前暂停的音效文件。或者调用resumeAllAudioClips恢复播放所有暂停的音效文件。
int soundId = 0; //音效文件ID [rtcEngine resumeAudioClip:soundId];
- 停止播放音效文件
调用stopAudioClip接口停止播放一个音效文件,或者调用stopAllAudioClips接口停止播放所有音效文件。
int soundId = 0; //音效文件ID [rtcEngine stopAudioClip:soundId];
- 音效文件播放结束回调
音效文件播放结束后,sdk会触发onAudioClipFinished回调通知上层应用。
- (void)onAudioClipFinished:(NSInteger)soundId { //收到音效文件播放结束通知后,可以刷新界面,比如恢复播放前初始界面状态。 }