设置音频属性

更新时间: 2024/03/15 17:20:41

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 类型 描述
DEFAULT 默认设置。语音场景下为 STANDARD,音乐场景下为 HIGH_QUALITY。
STANDARD 标准音质模式。采样率为 16 kHz、语音编码、单声道、编码码率最大值为 20 Kbps。
STANDARD_EXTEND 标准扩展模式。采样率为 16 kHz、语音编码、单声道、编码码率最大值为 32 Kbps。
MIDDLE_QUALITY 中等音质模式。采样率为 48 kHz、音乐编码、单声道、编码码率最大值为 64 Kbps。
MIDDLE_QUALITY_STEREO 中等音质模式(立体音)。采样率为 48 kHz、音乐编码、双声道、编码码率最大值为 80 Kbps。
HIGH_QUALITY 高音质模式。采样率为 48 kHz、音乐编码、单声道、编码码率最大值为 96 Kbps。
HIGH_QUALITY_STEREO 高音质模式(立体音)。采样率为 48 kHz、音乐编码、双声道、编码码率最大值为 128 Kbps。

设置音频场景

scenario 参数用于设置音频的使用场景,在不同场景中,声音的流畅度、噪声抑制、音质等会根据不同的场景做出优化。目前支持以下类型的场景:

scenario 场景 描述 音量
DEFAULT 默认的音频应用场景(语音)。 通话音量。
SPEECH 语音场景。推荐用于普通的音视频通话场景。对回声、噪声等环境音过滤效果较好,可以提供更为清晰的人声语音效果。 通话音量。
MUSIC 音乐场景。音乐级别音质设置,高保真、超流畅,推荐用于在线 KTV、在线演唱会、音乐直播、乐器教学等高音质要求的场景。 媒体音量。
CHATROOM 语音聊天室场景。优先保障音频连续性与稳定性,适用于用户需要频繁上下麦的场景。仅移动端支持。 通话音量。

不同的 scenario 下,设备的系统音量使用不同的音量类型。

典型场景的推荐配置

典型场景的音频参数推荐配置请参见音视频参数配置推荐

示例项目源码

网易云信提供AudioQuality 示例项目源码,您可以参考该源码配置音视频属性。

示例代码

    NERtcEx.getInstance().setParameters(mRtcParameters); //先设置参数,后初始化
    try {
        NERtcEx.getInstance().init(getApplicationContext(),Config.APP_KEY,this,null);
    } catch (Exception e) {
        showToast("SDK初始化失败");
        finish();
        return;
    }
    NERtcEx.getInstance().setAudioProfile(mAudioProfile,mAudioScenario);//初始化后设置音频场景

API 参考

方法 功能描述
setAudioProfile 设置音频场景与模式,可以在加入房间后设置。
enableLocalAudio 开启/关闭本地语音采集和发送。
muteLocalAudio 开关本地音频发送。
subscribeRemoteAudioStream 订阅/取消订阅指定音频流。
subscribeAllRemoteAudioStreams 订阅/取消订阅所有用户音频,对后续加入的用户也同样生效。

此文档是否对你有帮助?
有帮助
去反馈
  • 功能描述
  • 注意事项
  • 实现方法
  • 设置音频模式
  • 设置音频场景
  • 典型场景的推荐配置
  • 示例项目源码
  • 示例代码
  • API 参考