QNAudioSourceMixer
1. 当前支持基于 QNMicrophoneAudioTrack 和 QNCustomAudioTrack 的音源混音操作
2. 注意调用的时机,加入房间并且成功发布后混音才会生效
3. 通过 QNRTC.createAudioSourceMixer 创建 QNAudioSourceMixer 实例对象, 使用 audioTrack.addAudioFilter 将 sourceMixer 对象添加到 audioTrack 中
- - (QNAudioSource *)createAudioSourceWithSourceID:(int)sourceID
-
创建音源混音配置类实例,默认小端、关闭阻塞模式
每一路参与混音的音源都需要对应一个 QNAudioSource 实例
音源 ID 作为音源标识符,请务必保证唯一
Parameters-
sourceID: int
音源文件唯一标识符
-
filePath: NSString
文件路径
Returns QNAudioSource 实例 -
- - (QNAudioSource *)createAudioSourceWithSourceID:(int)sourceID blockingMode:(BOOL)blockingMode;
-
创建音源混音配置类实例,默认小端
当外部送入 PCM 数据进行混音时,可以使用:
1. 阻塞模式,此时外部数据可以持续送入 SDK,当 SDK 缓存的待混音数据过多时,会阻塞 QNAudioSourceMixer.pushAudioBuffer 接口,直到缓存数据被 SDK 混音使用,
2. 非阻塞模式,此时外部数据需要按每次送入音频数据的时长,按这个时长的间隔来依次送入;也可以使用播放器的回调来送入 SDK;如果送入过快,则 SDK 会丢弃过多的数据。
每一路参与混音的音源都需要对应一个 QNAudioSource 实例
音源 ID 作为音源标识符,请务必保证唯一
Parameters-
sourceID: int
音源文件唯一标识符
-
blockingMode: BOOL
阻塞模式
Returns QNAudioSource 实例 -
- - (QNAudioSource *)createAudioSourceWithSourceID:(int)sourceID bigEndian:(BOOL)bigEndian blockingMode:(BOOL)blockingMode;
-
创建音源混音配置类实例
当外部送入 PCM 数据进行混音时,可以使用:
1. 阻塞模式,此时外部数据可以持续送入 SDK,当 SDK 缓存的待混音数据过多时,会阻塞 QNAudioSourceMixer.pushAudioBuffer 接口,直到缓存数据被 SDK 混音使用,
2. 非阻塞模式,此时外部数据需要按每次送入音频数据的时长,按这个时长的间隔来依次送入;也可以使用播放器的回调来送入 SDK;如果送入过快,则 SDK 会丢弃过多的数据。
每一路参与混音的音源都需要对应一个 QNAudioSource 实例
音源 ID 作为音源标识符,请务必保证唯一
Parameters-
sourceID: int
音源文件唯一标识符
-
bigEndian: BOOL
是否是大端
-
blockingMode: BOOL
阻塞模式
Returns QNAudioSource 实例 -
- - (void)destroyAudioSourceWithSourceID:(int)sourceID;
-
销毁音源类
Parameters-
sourceID: int
音源唯一标识符
-
- - (void)setPublishEnabled:(BOOL)publishEnabled sourceID:(int)sourceID;
-
设置某音源音频是否发布到远端
Parameters-
publishEnabled: BOOL
是否发布到远端
-
sourceID: int
音源唯一标识符
-
- - (BOOL)isPublishEnabled:(int)sourceID;
-
获取某音源音频是否发布到远端
Parameters-
sourceID: int
音源唯一标识符
Returns BOOL -
- - (void)setVolume:(float)volume sourceID:(int)sourceID;
-
设置某音源音量,音量范围 0~1.0
Parameters-
volume: float
音量大小
-
sourceID: int
音源唯一标识符
-
- - (float)getVolume:(int)sourceID;
-
获取某音源音量
Parameters-
sourceID: int
音源唯一标识符
Returns float,范围 0~1.0 -
- - (void)setAllSourcesVolume:(float)volume;
-
设置所有音源的音量,范围 0~1.0
Parameters-
volume: float
音量大小
-
- - (void)pushAudioBuffer:(AudioBuffer *)audioBuffer asbd:(AudioStreamBasicDescription *)asbd sourceID:(int)sourceID;
-
导入音频数据
Parameters-
sourceID: int
音源唯一标识符
-
audioBuffer: AudioBuffer
音频数据
-
asbd: AudioStreamBasicDescription
音频数据格式
-