音频场景实践
本文主要介绍实时音视频通话过程中的一些特殊音频场景的使用方式。
音乐交互类场景
若您的业务场景中包含乐器弹奏、唱歌、外部设备音乐的播放(如伴奏)等音乐交互场景,为了避免系统的降噪对乐器弹奏、伴奏等音乐产生影响,建议在用户演奏时通过 QNRTC.setAudioScene 接口将音频场景设置为 QNAudioScene.SOUND_EQUALIZE,该场景对环境音和音乐声的还原性更优,可以为用户提供更好的演奏体验。
背景音乐(音效)场景
若您的业务场景有添加背景音乐的需求,可以通过 SDK 提供的混音管理类实现:
- QNAudioMusicMixer: 音乐混音,多用于对时长较长的背景音乐的混音,同时仅支持对一路音频进行混音
- QNAudioEffectMixer: 音效混音,多用于对时长较短的音乐的混音,如掌声、欢呼声、喝彩声等氛围音以及礼物音效等。支持同时对多路音效文件进行混音
- QNAudioSourceMixer: 音源混音,多用于对音频原始数据 (pcm) 的混音,支持同时对多路音源数据进行混音
本地播放
从 v5.2.0 版本开始,SDK 支持关闭混音音乐、音效的推送功能,关闭推送后,混音音乐、音效将只做本地播放。
若您的业务仅需本地播放音乐、音效,无需将音乐声音推送到远端,那么为了避免系统的降噪对通话质量产生影响,我们建议您通过上述混音接口替代其他音频播放器来实现本地音乐的播放。
关闭远端推送的接口示例如下:
// 停止背景音乐混音的推送
QNAudioMusicMixer.setPublishEnabled(false);
// 停止音效混音的推送
QNAudioEffectMixer.setPublishEnabled("effectID", false);
// 停止音源混音的推送
QNAudioSourceMixer.setPublishEnabled("sourceID", false);
游戏场景
游戏直播等场景通常需要实现游戏声音的录制、推送功能。为了实现对游戏音频的录制,需要满足如下前提条件:
- 游戏应用允许其声音被第三方应用捕获
- 您的应用具有相应权限,并实现了“捕获播放的音频”功能
对于上述条件的实现方式,可以参考 Android 官方文档。
在具备了上述前提条件后,即可通过如下方式完成游戏声音的录制和推送:
- 捕获游戏声音
- 将游戏声音作为一路音源推送至 SDK,并通过 SDK 推送至远端。音源混音可参考 QNAudioSourceMixer
参考文档
文档反馈
(如有产品使用问题,请 提交工单)