播放音乐文件
功能描述
混音是将音乐文件和麦克风音频混合,一般用于播放时长较长的背景音乐或者伴奏。同一时间只能播放一个音乐文件。可以在本地播放,也可以同时播放给其他与会者听。
可以播放本地或在线音乐文件,文件格式支持播放wav、pcm和单声道mp3音频格式。
实现播放音乐文件
- 加入房间
参考接口调用流程中加入房间的时序图步骤加入房间。
- 播放音乐文件
调用startAudioFile播放音乐文件,目前仅支持本端播放。
返回值为0,则说明调用成功,不为0则表示失败。
public void startAudio() { int ret = mHwRtcEngine.startAudioFile(audioFilePaths[currentFilePos], publish, cycle, replace); if (ret == 0) { // 成功 } else { // 失败 } }
- 设置音乐文件音量
调用adjustAudioFileVolume调整播放音量。
其中,progress取值范围为0 ~ 100。
public void setAudioVolume() { mHwRtcEngine.adjustAudioFileVolume(progress); }
- 获取音乐文件总时长
播放过程中,调用getAudioFileDuration获取音乐文件总时长,可用于刷新界面上的进度条。
public void refreshSeekBar() { int duration = mHwRtcEngine.getAudioFileDuration(); // 刷新进度条 }
- 获取音乐文件播放位置
播放过程中,调用getAudioFilePosition获取音乐文件当前播放位置,可用于刷新界面上的进度条。
public void refreshSeekBar() { int pos = mHwRtcEngine.getAudioFilePosition(); // 刷新进度条 }
- 设置音乐文件播放位置
播放过程中,调用setAudioFilePosition设置音乐文件播放位置,可用于跳转至对应播放位置。
public void seekTo() { mHwRtcEngine.setAudioFilePosition(pos); }
- 暂停播放音乐文件
播放过程中,调用pauseAudioFile暂停播放当前音乐文件。
public void pauseAudio() { mHwRtcEngine.pauseAudioFile(); }
- 恢复播放暂停的音乐文件
暂停时,调用resumeAudioFile恢复播放当前音乐文件。
public void resumeAudio() { mHwRtcEngine.resumeAudioFile(); }
- 停止播放音乐文件
播放过程中,调用stopAudioFile停止播放当前音乐文件。
public void stopAudio() { mHwRtcEngine.stopAudioFile(); }
- 音乐文件播放结束回调
播放结束后,SDK会触发onAudioMixStateChangedNotify回调来通知上层应用。
@Override public void onAudioMixStateChangedNotify(HRTCEnums.HRTCAudioFileState state, HRTCEnums.HRTCAudioFileReason reason, long value) { // 判断state,如果是HRTC_AUDIO_FILE_STOPPED,则表示收到音乐文件播放结束通知,可以刷新界面,比如恢复播放前初始界面状态。 }