QNAudioSourceMixer
1. 当前仅支持基于 QNMicrophoneAudioTrack 的音效混音操作
2. 混音需要加入房间并且成功发布后才会生效,因此,需要注意调用的时机
Index
Core Methods
Core Methods
createAudioSource[1/2]
- QNAudioSource createAudioSource(int sourceID)
-
使用非阻塞模式创建音源混音配置类实例,每一路参与混音的音源都需要对应一个 QNAudioSource 实例
Parameters-
sourceID: int
音源文件的唯一标识符,需自行生成并维护,且确保唯一
Returns 音源混音实例 -
createAudioSource[2/2]
- QNAudioSource createAudioSource(int sourceID, boolean blockingMode)
-
创建音源混音配置类实例,每一路参与混音的音源都需要对应一个 QNAudioSource 实例
当外部送入 PCM 数据进行混音时,可以使用:
1. 阻塞模式,此时外部数据可以持续送入 SDK,当 SDK 缓存的待混音数据过多时,会阻塞 QNAudioSourceMixer.pushAudioFrame 接口,直到缓存数据被 SDK 混音使用,
2. 非阻塞模式,此时外部数据需要按每次送入音频数据的时长,按这个时长的间隔来依次送入;也可以使用播放器的回调来送入 SDK;如果送入过快,则 SDK 会丢弃过多的数据。
Parameters-
sourceID: int
音源文件的唯一标识符,需自行生成并维护,且确保唯一
-
blockingMode: boolean
是否使用阻塞模式进行音源混音
Returns 音源混音实例 -
setPublishEnabled
- void setPublishEnabled(int sourceID, boolean enabled)
-
设置是否推送到远端,默认推送
Parameters-
sourceID: int
音源的唯一标识符
-
enabled: boolean
false: 只在本地播放音源, true: 将本地播放的音源发布至远端
-
isPublishEnabled
- boolean isPublishEnabled(int sourceID)
-
是否推送到远端
Parameters-
sourceID: int
音源的唯一标识符
Returns false: 只在本地播放音源, true: 将本地播放的音源发布至远端 -
setVolume
- void setVolume(int sourceID, float volume)
-
设置指定音源的混音音量,默认音量为 1.0f
若想修改混音中麦克风采集音频的音量,可通过 QNMicrophoneAudioTrack.setVolume 接口实现
Parameters-
sourceID: int
音源的唯一标识符
-
volume: float
音源的混音音量,[0.0f - 1.0f]
-
getVolume
- float getVolume(int sourceID)
-
获取指定音源的混音音量
Parameters-
sourceID: int
音源的唯一标识符
Returns 指定音源的混音音量,[0.0f - 1.0f] -
setAllSourcesVolume
- void setAllSourcesVolume(float volume)
-
设置所有正在混音的音源的混音音量
Parameters-
volume: float
音源的混音音量,[0.0f - 1.0f]
-
pushAudioFrame
- int pushAudioFrame(int sourceID, QNAudioFrame frame)
-
推送 PCM 音源数据
Parameters-
sourceID: int
音源的唯一标识符
-
frame: QNAudioFrame
音频数据帧
-
文档反馈
(如有产品使用问题,请 提交工单)