更新时间:2023-10-26 GMT+08:00
分享

播放音效文件

功能描述

用户可以同时播放多个音效文件,给自己和其他与会者听,用于烘托气氛。

支持本地或在线文件路径,文件格式支持播放wav、pcm和单声道mp3音频格式。

接口调用流程

实现播放音效文件

  1. 加入房间

    参考接口调用流程中加入房间的时序图步骤加入房间。

  2. 播放音效文件

    调用playAudioClip播放音效文件并启动混音。

    可以同时播放多个音效文件,不同音效文件用不同的soundId参数进行区别。

    public void playClip() {
        int soundId = 0; // 音效文件Id
        mHwRtcEngine.playAudioClip(soundId, filePath, loop, 0, 0, 100, publish, 0);
    }
  3. 设置音效文件音量

    调用setVolumeOfAudioClip设置音效播放的音量。

    其中,progress取值范围为0 ~ 100。

    public void setClipVolume() {
        mHwRtcEngine.setVolumeOfAudioClip(soundId, progress);
    }
  4. 获取音效文件总时长

    播放过程中,调用getAudioClipDuration获取音效文件总时长,可用于刷新界面上的进度条。

    public void refreshSeekBar() {
        int duration = mHwRtcEngine.getAudioClipDuration(filePath);
        // 刷新进度条
    }
  5. 获取音效文件播放位置

    播放过程中,调用getAudioClipCurrentPosition获取音效文件当前播放位置,可用于刷新界面上的进度条。

    public void refreshSeekBar() {
        int pos = mHwRtcEngine.getAudioClipCurrentPosition(soundId);
        // 刷新进度条
    }
  6. 设置音效文件播放位置

    播放过程中,调用setAudioClipPosition设置音效文件播放位置,可用于跳转至对应播放位置。

    public void seekTo() {
        mHwRtcEngine.setAudioClipPosition(soundId, effectPosition);
    }
  7. 暂停播放音效文件

    播放过程中,调用pauseAudioClip暂停播放指定的音效文件,调用pauseAllAudioClips暂停所有的音效文件。

    public void pauseClip() {
        mHwRtcEngine.pauseAudioClip(soundId);
    }
    
    public void pauseAllClip() {
        mHwRtcEngine.pauseAllAudioClips();
    }
  8. 恢复播放暂停的音效文件

    暂停时,调用resumeAudioClip恢复播放指定的音效文件,调用resumeAllAudioClips恢复所有的音效文件。

    public void resumeClip() {
        mHwRtcEngine.resumeAudioClip(soundId);
    }
    
    public void resumeAllClip() {
        mHwRtcEngine.resumeAllAudioClips();
    }
  9. 停止播放音效文件

    播放过程中,调用stopAudioClip停止播放指定的音效文件,调用stopAllAudioClips停止所有的音效文件。

    public void stopClip() {
        mHwRtcEngine.stopAudioClip(soundId);
    }
    
    public void stopAllClip() {
        mHwRtcEngine.stopAllAudioClips();
    }
  10. 音效文件播放结束回调
    在音效播放结束后,会收到onAudioClipFinished回调
    @Override
    public void onAudioClipFinished(int soundId) {
        // 音效播放结束
    }

相关文档