根据不同的业务需求,app 需要不同的音频体验。在声网 RTC SDK 中,你可以通过设置音频编码属性(profile
)和应用场景(scenario
)来实现不同的音频体验。
本文介绍如何使用声网 RTC SDK 在你的 app 中设置合适的音频编码属性和应用场景。
音频编码属性是指音频采样率、码率、编码模式和声道数;音频应用场景是指声网为常见业务场景推荐的音频处理算法,例如,声网推荐教育场景的 app 使用 AUDIO_SCENARIO_EDUCATION
,获取高流畅和稳定性的音频体验。
SDK 默认使用 AUDIO_PROFILE_DEFAULT
编码属性和 AUDIO_SCENARIO_DEFAULT
应用场景。如果默认设置无法满足你的需求,你可以在加入频道前调用 setAudioProfile
设置音频编码属性和应用场景。
在实现设置音频编码属性和应用场景前,请确保已在你的项目中实现基本的实时音视频功能。详见开始视频通话或开始互动直播。
本节介绍如何为常见业务场景设置音频编码属性和应用场景。你可以将如下示例代码添加至你项目的 /app/java/com.example.<projectname>/MainActivity
文件中。
该场景主要要求保证通话质量、传输流畅。声网推荐使用 SDK 默认的设置。
mRtcEngine.setAudioProfile(Constants.AUDIO_PROFILE_DEFAULT, Constants.AUDIO_SCENARIO_DEFAULT);
该场景主要要求传输人声、无杂音、节省码率。声网推荐如下设置:
mRtcEngine.setAudioProfile(Constants.AUDIO_PROFILE_SPEECH_STANDARD, Constants.AUDIO_SCENARIO_CHATROOM_GAMING);
该场景主要要求声音表现力好,上下麦时无音量、音质变化。声网推荐如下设置:
mRtcEngine.setAudioProfile(Constants.AUDIO_PROFILE_MUSIC_STANDARD, Constants.AUDIO_SCENARIO_CHATROOM_ENTERTAINMENT);
该场景主要要求高音质、对音乐和歌声的表现力好、支持使用丰富的音效。声网推荐如下设置:
mRtcEngine.setAudioProfile(Constants.AUDIO_PROFILE_MUSIC_HIGH_QUALITY, Constants.AUDIO_SCENARIO_GAME_STREAMING);
该场景一般会使用专业的音频设备,主要要求高音质和立体声。声网推荐如下设置:
mRtcEngine.setAudioProfile(Constants.AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO, Constants.AUDIO_SCENARIO_SHOWROOM);
该场景主要要求高音质,支持将扬声器播放的音效传输到远端。声网推荐如下设置:
mRtcEngine.setAudioProfile(Constants.AUDIO_PROFILE_MUSIC_STANDARD_STEREO, Constants.AUDIO_SCENARIO_GAME_STREAMING);
该场景主要要求高音质,呈现丰富的声音效果,上下麦时无音量、音质变化。声网推荐如下设置:
mRtcEngine.setAudioProfile(Constants.AUDIO_PROFILE_MUSIC_STANDARD_STEREO, Constants.AUDIO_SCENARIO_CHATROOM_ENTERTAINMENT);
本节提供在实现设置音频编码属性和应用场景时可能需要的文档。
声网在 GitHub 上提供已实现设置音频编码属性和应用场景功能的开源示例项目 SetAudioProfile。你可以下载体验并参考源代码。
音频应用场景会影响音量类型,详见如何区分媒体音量和通话音量。