设置音频属性
在不同的场景中,用户对于音质、声道、噪声抑制等方面的要求各有不同,例如在音乐直播、在线 KTV 等场景中,需要设置适宜于音乐场景的采样率、码率、流畅度、噪声抑制等参数和能力。NERTC 支持多种音频属性档位设置,适用于不同场景的音质、声道需求,以便您根据实际场景方便快捷地调整音质属性、在常见场景中实现最优的音质效果。
功能描述
NERTC SDK 通过 setAudioProfile 方法的 profile 和 scenario 参数提供多种音频 Profile 档位和音频场景设置,您可以根据实际场景需求灵活调整音质属性。
profile 参数代表不同的音频参数配置(音质),比如采样率、码率和编码模式,包括:
音频 profile 类型 | 描述 |
DEFAULT(0) | 默认设置。语音场景下为 STANDARD(1),音乐场景下为 HIGH_QUALITY(4)。 |
STANDARD(1) | 标准音质模式。采样率为 16 kHz、语音编码、单声道、编码码率最大值为 20 Kbps。 |
MIDDLE_QUALITY(2) | 中等音质模式。采样率为 48 kHz、音乐编码、单声道、编码码率最大值为 32 Kbps。 |
MIDDLE_QUALITY_STEREO(3) | 中等音质模式(立体音)。采样率为 48 kHz、音乐编码、双声道、编码码率最大值为 64 Kbps。 |
HIGH_QUALITY(4) | 高音质模式。采样率为 48 kHz、音乐编码、单声道、编码码率最大值为 64 Kbps。 |
HIGH_QUALITY_STEREO(5) | 高音质模式(立体音)。采样率为 48 kHz、音乐编码、双声道、编码码率最大值为 128 Kbps。 |
STANDARD_EXTEND(6) | 标准扩展模式。采样率为 16 kHz、语音编码、单声道、编码码率最大值为 32 Kbps。 |
scenario 参数用于设置音频的使用场景,在不同场景中,声音的流畅度、噪声抑制、音质等会根据不同的场景做出优化。目前支持以下类型的场景:
scenario 场景 | 描述 |
DEFAULT(0) | 默认的音频应用场景(语音)。 |
SPEECH(1) | 语音场景。推荐用于普通的音视频通话场景。 |
MUSIC(2) | 音乐场景。音乐级别音质设置,高保真、超流畅,推荐用于在线 KTV、在线演唱会、音乐直播、乐器教学等高音质要求的场景。 |
CHATROOM(3) | 语音聊天室场景。优先保障音频连续性与稳定性,推荐用于在线语音聊天室场景。仅移动端支持。 |
注意事项
该方法需要在 init
之前调用。
Android
实现方法
设置音频属性需要在 SDK 初始化之前设置。
示例代码
NERtcEx.getInstance().setParameters(mRtcParameters); //先设置参数,后初始化
NERtcEx.getInstance().setAudioProfile(mAudioProfile,mAudioScenario);//初始化前设置音频场景
try {
NERtcEx.getInstance().init(getApplicationContext(),Config.APP_KEY,this,null);
} catch (Exception e) {
showToast("SDK初始化失败");
finish();
return;
}
API参考
方法 | 功能描述 |
---|---|
setAudioProfile | 设置音频场景与模式,必须在 init 前设置有效 |
adjustRecordingSignalVolume | 调节录音音量 |
adjustPlaybackSignalVolume | 调节播放音量 |
enableLocalAudio | 开启/关闭本地语音(采集和发送) |
muteLocalAudio | 开关本地音频发送 |
subscribeRemoteAudioStream | 订阅/取消订阅指定音频流。 |
subscribeAllRemoteAudioStreams | 订阅/取消订阅所有用户音频(后续加入的用户也同样生效) |
iOS
注意事项
若您的 SDK 版本低于 V3.7.0, 接口 setAudioProfile: scenario:
需在初始化设置 NERtcEngine 之前调用才会生效,即需要在 setupEngineWithContext:
之前设置。
实现方法
- 调用接口
setAudioProfile: scenario:
可以设置音频编码。 - 调用接口
enableLocalAudio:
可以开启/关闭自己的音频。 - 调用接口
muteLocalAudio:
可以静音自己的音频。 - 调用接口
subscribeRemoteAudio: forUserID:
可以订阅或取消订阅别人的音频。订阅之后才能接受远端音频数据。 - 调用接口
subscribeAllRemoteAudio:
可以订阅或取消订阅所有的远端音频。局操作。
示例代码
// 在初始化之前设置
[[NERtcEngine sharedEngine] setAudioProfile:profile scenario:scenario]
API参考
方法 | 功能描述 |
---|---|
setAudioProfile | 设置音频编码配置 |
enableLocalAudio | 开关本地音频采集 |
muteLocalAudio | 开关本地音频发送 |
subscribeRemoteAudio | 订阅/取消订阅指定音频流 |
subscribeAllRemoteAudio | 订阅/取消订阅所有远端音频流 |
Windows/macOS
注意事项
setAudioProfile
需要在 joinChannel
之前调用。
实现方法
- 调用接口
setAudioProfile
可以设置音频编码。 - 调用接口
enableLocalAudio:
可以开启/关闭自己的音频。 - 调用接口
muteLocalAudioStream:
可以静音自己的音频。 - 调用接口
subscribeRemoteAudioStream
可以订阅或取消订阅别人的音频。订阅之后才能接受远端音频数据。
示例代码
engine->setParameters(rtcParameters); //先设置参数
engine->setAudioProfile(audioProfile,audioScenario);//加入频道前设置音频场景
engine->joinChannel(token, channel_name, uid, kNERtcChannelP2P);
API参考
方法 | 功能描述 |
---|---|
setAudioProfile | 设置音频编码配置 |
enableLocalAudio | 开关本地音频采集 |
muteLocalAudioStream | 开关本地音频发送 |
subscribeRemoteAudioStream | 订阅/取消订阅指定音频流。 |
Web
注意事项
setAudioProfile
需要在 joinChannel
之前调用。
实现方法
NERTC Web SDK 通过 setAudioProfile 接口支持设置视频属性。在 localStream.init() 或者 localStream.open() 接口之前调用生效。
其中,quality 参数用于设置音频质量的档位:
音频 profile 类型 | 描述 |
speech_low_quality | 16 kHz 采样率,单声道,编码码率约 24 Kbps。 |
speech_standard | 32 kHz 采样率,单声道,编码码率约 24 Kbps。 |
music_standard | 48 kHz 采样率,单声道,编码码率约 40 Kbps。 |
standard_stereo | 48 kHz 采样率,双声道,编码码率约 64 Kbps。 |
high_quality | 48 kHz 采样率,单声道, 编码码率约 128 Kbps。 |
high_quality_stereo | 48 kHz 采样率,双声道,编码码率约 192 Kbps。 |
示例代码
let quality = 'speech_low_quality'
localStream.setAudioProfile(quality)
API参考
方法 | 功能描述 |
---|---|
setAudioProfile | 设置音频场景与模式,必须在 init() 前或者open()前设置有效 |
setAudioVolume | 调节播放音量 |
open | 打开音视频流输入设备,如麦克风 |
close | 关闭音视频流输入设备,如麦克风 |
muteAudio | 禁用音频轨道 |
unmuteAudio | 启用音频轨道 |
getAudioLevel | 获取当前麦克风采集音量 |
hasAudio | 当前Stream是否有音频 |
publish | 发布音视频流 |
unpublish | 取消发布音视频流 |
subscribe | 接收远端音视频流 |
unsubscribe | 取消接收远端音视频流 |
本篇文档内容是否对您有帮助?


此文档对你是否有帮助
×


×