混音伴奏
更新时间:2021-05-26
概述
SDK
支持混音功能,例如添加音效,或者播放背景音乐等,使用 SDK
混音伴奏功能,可以同时将音频数据和麦克风采集的数据混音之后进行发送。
说明
开启混音伴奏后,拉流端可以同时播放远端麦克风采集音频数据和混音伴奏音频数据。
使用步骤
开启混音伴奏
在确保登录房间并已经开始推流后,获取指定一个 MP3
路径,然后调用 startAudioMixing
方法,就可以开启混音。
/**
* 开始播放音乐文件及混音(声音伴奏)
* @param filePath String类型,文件路径
* @param mode 指定伴奏模式,详见mode定义{@link LVConstants.LVAudioMixingMode}
* @param loop int类型,指定音频文件循环播放的次数,正整数:循环的次数 -1:无限循环
* @return int类型,0 : 方法调用成功,!0:失败
*/
mRtcEngine.startAudioMixing("/assets/audio.mp3", LVConstants.LVAudioMixingMode.SEND_ONLY, -1);
// 音频混音模式支持
public enum LVAudioMixingMode {
/**
* 伴奏音乐只用于发送,本地听不到伴奏音乐,远端可听到
*/
SEND_ONLY(1 << 1),
/**
* 伴奏音乐只用于本地播放,远端听不到伴奏音乐
*/
PLAYOUT_ONLY(1 << 2),
/**
* 伴奏音乐本地和远端都可听到
*/
SEND_AND_PLAYOUT(SEND_ONLY.value | PLAYOUT_ONLY.value),
/**
* 替换microphone采集声音,本地和远端都只播放伴奏音乐
*/
REPLACE_MIC(1 << 0 | SEND_AND_PLAYOUT.value),
/**
* 伴奏替换microphone采集声音,同时伴奏声音只用于发送
*/
REPLACE_MIC_AND_SEND_ONLY(1 << 0 | SEND_ONLY.value);
private int value;
LVAudioMixingMode(int value) {
this.value = value;
}
public int value() {
return this.value;
}
}
暂停/恢复混音
/**
* 暂停播放音乐文件及混音。请在房间内调用该方法。
* @return 0:方法调用成功 !0:方法调用失败
*/
mRtcEngine.pauseAudioMixing();
停止混音
/**
* 停止播放音乐文件及混音。请在房间内调用该方法。
* @return int类型,0:方法调用成功 !0:方法调用失败
*/
mRtcEngine.stopAudioMixing();
相关 API
获取伴奏音量
/**
* 获取当前伴奏音量,请在伴奏开始后调用。
* @return int类型,-1:伴奏未开始 0~100:当前伴奏音量
*/
mRtcEngine.getAudioMixingVolume();
调整伴奏音乐播放音量
/**
* 调节音乐文件的播放音量。请在房间内调用该方法。
* @param volume int类型,音量:0~100
* @return int类型,0:方法调用成功 !0:方法调用失败
*/
mRtcEngine.adjustAudioMixingVolume(100);
设置音乐文件的播放位置
/**
* 设置音乐文件的播放位置。请在房间内调用该方法。
* @param pos int类型,进度条位置,单位毫秒
* @return int类型,0:方法调用成功 !0:方法调用失败
*/
mRtcEngine.setAudioMixingPosition(200);
获取当前伴奏文件总时长
/**
* 获取当前伴奏文件总时长,单位毫秒。请在房间内调用该方法。
* @return long类型,文件总时长
*/
mRtcEngine.getAudioMixingTotalLength();
获取当前音乐播放进度
/**
* 获取音乐文件的播放进度。单位毫秒。请在房间内调用该方法。
* @return long类型,<0:方法调用失败 >=0:方法调用成功并返回伴奏播放进度
*/
mRtcEngine.getAudioMixingCurrentPosition();