设置音频属性
功能描述
在一些比较专业的音频场景里,用户对声音的效果格外重视,比如语音电台,此时就需要对双声道和高音质的支持。 所谓的高音质指的是我们提供采样率为 48 kHz、码率 128 Kbps 的能力,帮助用户实现高逼真的音乐场景,这种能力在语音电台、在线K歌类场景中应用较多。
本文指导开发者根据对音质、声道、场景等的不同需求,选择不同的音频属性,获得最佳实时互动效果。
NERTC SDK提供了 setAudioProfile 方法给到开发者能够根据实际场景需求灵活调整音质属性。需要设置两个参数 profile 和 scenario:
参数 | 描述 |
---|---|
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 | 设置音频的使用场景,如娱乐、教学和游戏直播等。声音的流畅度、噪声抑制、音质等会根据不同的场景做出优化: DEFAULT(0):默认的音频应用场景(语音) SPEECH(1):语音场景 MUSIC(2):音乐场景 |
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 | 订阅/取消订阅所有用户音频(后续加入的用户也同样生效) |
开发注意事项
该方法需要在 init
之前调用。
不同的 Audio scenario 下,设备的系统音量是不同的。
系统音量分通话音量和媒体音量两种:
- 通话音量指的是进行语音、视频通话时的音量。通话音量有较好的回声消除。
- 媒体音量指的是播放音乐、视频或游戏的音效、背景音的音量。媒体音量有较好的声音表现力。
iOS
实现方法
- 初始化NERTC SDK;
- 调用接口
setAudioProfile: scenario:
可以设置音频编码; - 调用接口
adjustRecordingSignalVolume:
可以设置录音音量(默认值100, 调整范围0~400, 自带溢出保护); - 调用接口
adjustPlaybackSignalVolume:
可以设置播放音量(默认值100, 调整范围0~400, 自带溢出保护); - 调用接口
enableLocalAudio:
可以开启/关闭自己的音频; - 调用接口
muteLocalAudio:
可以静音自己的音频; - 调用接口
subscribeRemoteAudio: forUserID:
可以订阅或取消订阅别人的音频, 只有订阅了才会接收别人的音频数据; - 调用接口
subscribeAllRemoteAudio:
可以订阅或取消订阅所有的远端音频, 该操作属于全局操作;
示例代码
// 在初始化之前设置
[[NERtcEngine sharedEngine] setAudioProfile:profile scenario:scenario]
API参考
方法 | 功能描述 |
---|---|
setAudioProfile | 设置音频编码配置 |
adjustRecordingSignalVolume | 调节录音音量 |
adjustPlaybackSignalVolume | 调节播放音量 |
enableLocalAudio | 开关本地音频采集 |
muteLocalAudio | 开关本地音频发送 |
subscribeRemoteAudio | 订阅/取消订阅指定音频流 |
subscribeAllRemoteAudio | 订阅/取消订阅所有远端音频流 |
开发注意事项
- 若您的SDK版本低于3.7.0, 接口
setAudioProfile: scenario:
需在初始化设置 NERtcEngine, 即在setupEngineWithContext:
之前调用才会生效;
Windows/macOS
实现方法
- 初始化NERTC SDK;
- 调用接口
setAudioProfile:
可以设置音频编码; - 调用接口
adjustRecordingSignalVolume:
可以设置录音音量(默认值100, 调整范围0~400, 自带溢出保护); - 调用接口
adjustPlaybackSignalVolume:
可以设置播放音量(默认值100, 调整范围0~400, 自带溢出保护); - 调用接口
enableLocalAudio:
可以开启/关闭自己的音频; - 调用接口
muteLocalAudioStream:
可以静音自己的音频; - 调用接口
subscribeRemoteAudioStream:
可以订阅或取消订阅别人的音频, 只有订阅了才会接收别人的音频数据;
示例代码
engine->setParameters(rtcParameters); //先设置参数
engine->setAudioProfile(audioProfile,audioScenario);//加入频道前设置音频场景
engine->joinChannel(token, channel_name, uid, kNERtcChannelP2P);
API参考
方法 | 功能描述 |
---|---|
setAudioProfile | 设置音频编码配置 |
adjustRecordingSignalVolume | 调节录音音量 |
adjustPlaybackSignalVolume | 调节播放音量 |
enableLocalAudio | 开关本地音频采集 |
muteLocalAudioStream | 开关本地音频发送 |
subscribeRemoteAudioStream | 订阅/取消订阅指定音频流。 |
开发注意事项
setAudioProfile
需要在 joinChannel
之前调用。
不同的 Audio scenario 下,设备的系统音量是不同的。
系统音量分通话音量和媒体音量两种:
- 通话音量指的是进行语音、视频通话时的音量。通话音量有较好的回声消除。
- 媒体音量指的是播放音乐、视频或游戏的音效、背景音的音量。媒体音量有较好的声音表现力。
Web
实现方法
在通话或互动直播中设置音频属性,可以根据用户喜好,调整音频的质量,获得较高的用户体验。
云信 Web SDK 通过 setAudioProfile接口支持设置视频属性(在localStream.init()或者localStream.open()接口之前调用生效)
示例代码
let quality = 'speech_low_quality'
localStream.setAudioProfile(quality)
- quality参数说明
参数名 | 类型 | 说明 |
---|---|---|
quality | String | 设置的音频质量 |
- quality值具体说明
quality可选值 | 类型 | 说明 |
---|---|---|
speech_low_quality | String | 16 kHz 采样率,单声道,编码码率约 24 Kbps |
speech_standard | String | 32 kHz 采样率,单声道,编码码率约 24 Kbps |
music_standard | String | 48 kHz 采样率,单声道,编码码率约 40 Kbps |
standard_stereo | String | 48 kHz 采样率,双声道,编码码率约 64 Kbps |
high_quality | String | 48 kHz 采样率,单声道, 编码码率约 128 Kbps |
high_quality_stereo | String | 48 kHz 采样率,双声道,编码码率约 192 Kbps |
API参考
方法 | 功能描述 |
---|---|
setAudioProfile | 设置音频场景与模式,必须在 init() 前或者open()前设置有效 |
setAudioVolume | 调节播放音量 |
open | 打开音视频流输入设备,如麦克风 |
close | 关闭音视频流输入设备,如麦克风 |
muteAudio | 禁用音频轨道 |
unmuteAudio | 启用音频轨道 |
getAudioLevel | 获取当前麦克风采集音量 |
hasAudio | 当前Stream是否有音频 |
publish | 发布音视频流 |
unpublish | 取消发布音视频流 |
subscribe | 接收远端音视频流 |
unsubscribe | 取消接收远端音视频流 |
本篇文档内容是否对您有帮助?


此文档对你是否有帮助
×


×