QNAudioMusicMixer
1. 当前仅支持基于 QNMicrophoneAudioTrack 的背景音乐混音操作
2. 混音需要加入房间并且成功发布后才会生效,因此,需要注意调用的时机
3. 背景音乐混音仅支持同时混合一路背景音乐,若需要切换背景音乐,重新调用 QNMicrophoneAudioTrack.CreateAudioMusicMixer 创建本类的实例即可
4. 若您希望在混合背景音乐的同时添加音效,可参考音效混音接口(QNAudioEffectMixer)
- static int64_t GetDuration(const std::string& file_path)
-
获取指定音频文件的总时长,单位:ms
该接口为同步方法,对于在线音频文件,获取时长会存在一定的耗时,需注意调用接口所在的线程
Returns 音频文件总时长,单位:ms
- virtual bool Start() = 0
-
开始混音并播放,音频只混一次,不做循环混音操作
混音开始后会触发 QNAudioMusicMixerListener.OnAudioMusicMixerStateChanged 回调,并回调 QNMusicMixerState.kStateMixing 状态
混音过程中会回调 QNAudioMusicMixerListener.OnAudioMusicMixing 方法
- virtual bool Start(int loop_count) = 0
-
开始指定次数的混音并播放
混音开始后会触发 QNAudioMusicMixerListener.OnAudioMusicMixerStateChanged 回调,并回调 QNMusicMixerState.kStateMixing 状态
混音过程中会回调 QNAudioMusicMixerListener.OnAudioMusicMixing 方法
Parameters-
loop_count: int
混音次数,-1 为无限循环,0 则不做混音,其他则为指定次数的混音
-
- virtual bool Stop() = 0
-
停止混音操作
混音停止后会触发 QNAudioMusicMixerListener.OnAudioMusicMixerStateChanged 回调,并回调 QNMusicMixerState.kStateStopped 状态
- virtual bool Resume() = 0
-
恢复混音操作
混音恢复后会触发 QNAudioMusicMixerListener.OnAudioMusicMixerStateChanged 回调,并回调 QNMusicMixerState.kStateMixing 状态
- virtual bool Pause() = 0
-
暂停混音操作
混音暂停后会触发 QNAudioMusicMixerListener.OnAudioMusicMixerStateChanged 回调,并回调 QNMusicMixerState.kStatePaused 状态
- virtual int64_t GetCurrentPosition() = 0
-
获取当前音频混音的位置,单位: ms
Returns 当前音频混音的位置,单位: ms
- virtual bool SeekTo(int64_t seek_pos) = 0
-
跳到指定位置混音
成功跳到指定位置混音后会触发 QNAudioMusicMixerListener.OnAudioMusicMixerStateChanged 回调,并回调 QNMusicMixerState.kStateMixing 状态
Parameters-
seek_pos: int64_t
指定位置的时间戳,单位: ms
-
- virtual void SetMixingVolume(float mix_volume) = 0
-
设置背景音乐的混音音量,默认音量为 1.0f
若想修改混音中麦克风采集音频的音量,可通过 QNMicrophoneAudioTrack.SetVolume 接口实现
Parameters-
mix_volume: float
背景音乐混音音量,[0.0f - 1.0f]
-
- virtual float GetMixingVolume() = 0
-
获取背景音乐混音的音量
Returns 背景音乐混音的音量,[0.0f - 1.0f]
- virtual void SetStartPosition(int64_t start_pos) = 0
-
设置背景音乐混音的起始位置,起始位置的有效值为 0 - duration 之间的值
Parameters-
start_pos: int64_t
背景音乐混音的起始位置,单位:ms
-
- virtual int64_t GetStartPosition() = 0
-
获取背景音乐混音的起始位置
Returns 背景音乐混音的起始位置,单位:ms