设置音频属性
更新时间: 2024/09/18 16:26:13
NERTC SDK 支持设置音频编码属性设置,本文档为您介绍如何通过 setAudioProfile
方法的 profile
和 scenario
参数实现不同的音质效果。
功能描述
在不同的场景中,用户对于音质、声道、噪声抑制等方面的要求各有不同,例如在音乐直播、在线 KTV 等场景中,需要设置适宜于音乐场景的采样率、码率、流畅度、噪声抑制等参数和能力。NERTC 支持多种音频属性档位设置,适用于不同场景的音质、声道需求,以便您根据实际场景方便快捷地调整音质属性、在常见场景中实现最优的音质效果。
NERTC SDK 通过 setAudioProfile
方法的 profile
和 scenario
参数提供多种音频 Profile 档位和音频场景设置,您可以根据实际场景需求灵活调整音质属性。
注意事项
- SDK 支持在加入房间通话中后,您根据实际场景变化动态调用
setAudioProfile
方法。 - 若您通过
setChannelProfile
接口设置房间场景为直播模式,即LIVE_BROADCASTING
,但未调用setAudioProfile
方法设置音频编码属性,或仅设置profile
为DEFAULT
,则 SDK 会自动设置profile
为HIGH_QUALITY
,且设置scenario
为MUSIC
。
实现方法
通过 setAudioProfile
设置音频属性。
设置音频模式
profile
参数代表不同的音频参数配置(音质),比如采样率、码率和编码模式,包括:
音频 profile 类型 | 描述 |
---|---|
kNERtcAudioProfileDefault | 默认设置。语音场景下为 STANDARD,音乐场景下为 HIGH_QUALITY。 |
kNERtcAudioProfileStandard | 标准音质模式。采样率为 16 kHz、语音编码、单声道、编码码率最大值为 20 Kbps。 |
kNERtcAudioProfileStandardExtend | 标准扩展模式。采样率为 16 kHz、语音编码、单声道、编码码率最大值为 32 Kbps。 |
kNERtcAudioProfileMiddleQuality | 中等音质模式。采样率为 48 kHz、音乐编码、单声道、编码码率最大值为 64 Kbps。 |
kNERtcAudioProfileMiddleQualityStereo | 中等音质模式(立体音)。采样率为 48 kHz、音乐编码、双声道、编码码率最大值为 80 Kbps。 |
kNERtcAudioProfileHighQuality | 高音质模式。采样率为 48 kHz、音乐编码、单声道、编码码率最大值为 96 Kbps。 |
kNERtcAudioProfileHighQualityStereo | 高音质模式(立体音)。采样率为 48 kHz、音乐编码、双声道、编码码率最大值为 128 Kbps。 |
设置音频场景
scenario
参数用于设置音频的使用场景,在不同场景中,声音的流畅度、噪声抑制、音质等会根据不同的场景做出优化。目前支持以下类型的场景:
scenario 场景 | 描述 | 音量 |
---|---|---|
kNERtcAudioScenarioDefault | 默认的音频应用场景(语音)。 | 通话音量。 |
kNERtcAudioScenarioSpeech | 语音场景。推荐用于普通的音视频通话场景。对回声、噪声等环境音过滤效果较好,可以提供更为清晰的人声语音效果。 | 通话音量。 |
kNERtcAudioScenarioMusic | 音乐场景。音乐级别音质设置,高保真、超流畅,推荐用于在线 KTV、在线演唱会、音乐直播、乐器教学等高音质要求的场景。 | 媒体音量。 |
kNERtcAudioScenarioChatroom | 语音聊天室场景。优先保障音频连续性与稳定性,适用于用户需要频繁上下麦的场景。仅移动端支持。 | 通话音量。 |
不同的 scenario 下,设备的系统音量使用不同的音量类型。
典型场景的推荐配置
游戏语音的音频参数推荐配置如下表所示。
属性 |
推荐配置 |
推荐原因 |
---|---|---|
音频属性setAudioProfile |
Profile:kNERtcAudioProfileStandardExtend (单声道标准扩展音质) | 在网络环境不够稳定的情况下,低码率可以保证语音通话的基本需求,且人声明晰。 |
Scenario:kNERtcAudioScenarioChatroom (语音聊天室场景) | 带耳机或蓝牙耳机时, 3A 设置和 MUSIC 场景类似。 在声音外放时,3A 会尽可能使用硬件 AEC(回声消除),消除游戏声音。 |
|
场景属性setChannelProfile |
kNERtcChannelProfileLiveBroadcasting (直播模式) | 保证画质清晰度,抗弱网能力强。 延时会比 COMMUNICATION(通信模式)大。在出现资源不够的情况下,优先保障分辨率,降低帧率去匹配,流畅度会受影响。 |
示例代码
nertc_engine_->initialize(context);
nertc_engine_->setAudioProfile(audioProfile,audioScenario);//设置音频场景,也可以在加入房间后设置
nertc_engine_->joinChannel(token, channel_name, uid, option);
API 参考
方法 | 功能描述 |
---|---|
setAudioProfile | 设置音频场景与模式,可以在加入房间后设置。 |
enableLocalAudio | 开启/关闭本地语音采集和发送。 |
muteLocalAudioStream | 开关本地音频发送。 |
subscribeRemoteAudioStream | 订阅/取消订阅指定音频流。 |
subscribeAllRemoteAudioStream | 订阅/取消订阅所有用户音频,对后续加入的用户也同样生效。 |
此文档是否对你有帮助?