设置音频属性

更新时间: 2024/09/18 16:26:13

NERTC SDK 支持设置音频编码属性设置,本文档为您介绍如何通过 setAudioProfile 方法的 profilescenario 参数实现不同的音质效果。

功能描述

在不同的场景中,用户对于音质、声道、噪声抑制等方面的要求各有不同,例如在音乐直播、在线 KTV 等场景中,需要设置适宜于音乐场景的采样率、码率、流畅度、噪声抑制等参数和能力。NERTC 支持多种音频属性档位设置,适用于不同场景的音质、声道需求,以便您根据实际场景方便快捷地调整音质属性、在常见场景中实现最优的音质效果。

NERTC SDK 通过 setAudioProfile 方法的 profilescenario 参数提供多种音频 Profile 档位和音频场景设置,您可以根据实际场景需求灵活调整音质属性。

注意事项

  • SDK 支持在加入房间通话中后,您根据实际场景变化动态调用 setAudioProfile 方法。
  • 若您通过 setChannelProfile 接口设置房间场景为直播模式,即 LIVE_BROADCASTING,但未调用 setAudioProfile 方法设置音频编码属性,或仅设置 profileDEFAULT,则 SDK 会自动设置 profileHIGH_QUALITY,且设置 scenarioMUSIC

实现方法

通过 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 订阅/取消订阅所有用户音频,对后续加入的用户也同样生效。
此文档是否对你有帮助?
有帮助
去反馈
  • 功能描述
  • 注意事项
  • 实现方法
  • 设置音频模式
  • 设置音频场景
  • 典型场景的推荐配置
  • 示例代码
  • API 参考