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