QNAudioMusicMixer
1. 当前支持基于 QNMicrophoneAudioTrack 和 QNCustomAudioTrack 的背景音乐混音操作
2. 注意调用的时机,加入房间并且成功发布后混音才会生效
3. 通过 QNRTC.createAudioEffectMixer 创建 QNAudioMusicMixer 实例对象, 使用 audioTrack.addAudioFilter 将 musicMixer 对象添加到 audioTrack 中
4. 背景音乐混音仅支持同时混合一路背景音乐,若需要切换背景音乐,请重新调用 QNRTC.createAudioMusicMixer 创建本类的实例即可
5. 若您希望在混合背景音乐的同时添加音效,可参考音效混音接口 QNAudioEffectMixer
- + (int64_t)getDuration:(NSString *)filePath
-
获取指定音频文件的总时长
文件路径支持本地路径以及在线文件
音频格式支持 aac、mp3、mp4、wav、m4r、caf、ogg、opus、m4a、flac
该接口为同步方法,对于在线音频文件,获取时长会存在一定的耗时,需注意调用接口所在的线程
Parameters-
filePath: NSString
文件路径
Returns int64_t,单位 ms -
- - (void)setPublishEnabled:(BOOL)publishEnabled;
-
设置某音源音频是否发布到远端
Parameters-
publishEnabled: BOOL
是否发布到远端
-
- - (BOOL)isPublishEnabled;
-
获取某音源音频是否发布到远端
Returns BOOL
- - (void)setMixingVolume:(float)volume;
-
设置背景音语参与混音的音量,范围 0 ~ 1.0
该接口已废弃,请使用 QNAudioMusicMixer.setMusicVolume
Parameters-
volume: float
音量大小
-
- - (float)getMixingVolume;
-
获取背景音乐参与混音的音量
该接口已废弃,请使用 QNAudioMusicMixer.getMusicVolume
Returns float,范围 0 ~ 1.0
- - (void)setMusicVolume:(float)volume;
-
设置背景音语参与混音的音量,范围 0 ~ 1.0
若想修改混音中麦克风采集音频的音量,可通过 QNMicrophoneAudioTrack.setVolume 接口实现
Parameters-
volume: float
音量大小
-
- - (float)getMusicVolume;
-
获取背景音乐参与混音的音量
Returns float,范围 0 ~ 1.0
- - (void)setStartPosition:(int64_t)position;
-
设置参与混音的起始位置,单位 ms
Parameters-
position: int64_t
起始位置
-
- - (int64_t)getStartPosition;
-
获取参与混音的起始位置
Returns int64_t,单位 ms
- - (int64_t)getCurrentPosition;
-
获取当前时长
Returns int64_t,单位 ms
- - (BOOL)start;
-
开始混音,默认只混一次
触发 QNAudioMusicMixerDelegate.didStateChanged 回调混音状态为 QNAudioMusicMixerStateMixing
触发 QNAudioMusicMixerDelegate.didMixing 回调当前混音进度
Returns BOOL 接口是否调用成功
- - (BOOL)start:(int)loopCount;
-
指定循环次数开始混音
-1 为无限循环,0 为不混音,大于 0 为实际循环次数
触发 QNAudioMusicMixerDelegate.didStateChanged 回调混音状态为 QNAudioMusicMixerStateMixing
触发 QNAudioMusicMixerDelegate.didMixing 回调当前混音进度
Parameters-
loopCount: int
循环次数
Returns BOOL 接口是否调用成功 -
- - (BOOL)stop;
-
停止混音
触发 QNAudioMusicMixerDelegate.didStateChanged 回调混音状态为 QNAudioMusicMixerStateStopped
Returns BOOL 接口是否调用成功
- - (BOOL)pause;
-
暂停混音
触发 QNAudioMusicMixerDelegate.didStateChanged 回调混音状态为 QNAudioMusicMixerStatePaused
Returns BOOL 接口是否调用成功
- - (BOOL)resume;
-
恢复混音
触发 QNAudioMusicMixerDelegate.didStateChanged 回调混音状态为 QNAudioMusicMixerStateMixing
Returns BOOL 接口是否调用成功
- - (BOOL)seekTo:(int64_t)position;
-
跳到指定位置混音,单位 ms
seek 成功会触发 QNAudioMusicMixerDelegate.didStateChanged 回调混音状态为 QNAudioMusicMixerStateMixing
Returns BOOL 接口是否调用成功