文档反馈
文档反馈

设置音频属性

功能描述

在一些比较专业的音频场景里,用户对声音的效果格外重视,比如语音电台,此时就需要对双声道和高音质的支持。 所谓的高音质指的是我们提供采样率为 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
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

实现方法

  1. 初始化NERTC SDK;
  2. 调用接口 setAudioProfile: scenario: 可以设置音频编码;
  3. 调用接口 adjustRecordingSignalVolume: 可以设置录音音量(默认值100, 调整范围0~400, 自带溢出保护);
  4. 调用接口 adjustPlaybackSignalVolume: 可以设置播放音量(默认值100, 调整范围0~400, 自带溢出保护);
  5. 调用接口 enableLocalAudio: 可以开启/关闭自己的音频;
  6. 调用接口 muteLocalAudio: 可以静音自己的音频;
  7. 调用接口 subscribeRemoteAudio: forUserID: 可以订阅或取消订阅别人的音频, 只有订阅了才会接收别人的音频数据;
  8. 调用接口 subscribeAllRemoteAudio: 可以订阅或取消订阅所有的远端音频, 该操作属于全局操作;

示例代码

// 在初始化之前设置
[[NERtcEngine sharedEngine] setAudioProfile:profile scenario:scenario]

API参考

方法 功能描述
setAudioProfile 设置音频编码配置
adjustRecordingSignalVolume 调节录音音量
adjustPlaybackSignalVolume 调节播放音量
enableLocalAudio 开关本地音频采集
muteLocalAudio 开关本地音频发送
subscribeRemoteAudio 订阅/取消订阅指定音频流
subscribeAllRemoteAudio 订阅/取消订阅所有远端音频流

开发注意事项

  1. 若您的SDK版本低于3.7.0, 接口 setAudioProfile: scenario: 需在初始化设置 NERtcEngine, 即在 setupEngineWithContext: 之前调用才会生效;

Windows/macOS

实现方法

  1. 初始化NERTC SDK;
  2. 调用接口 setAudioProfile: 可以设置音频编码;
  3. 调用接口 adjustRecordingSignalVolume: 可以设置录音音量(默认值100, 调整范围0~400, 自带溢出保护);
  4. 调用接口 adjustPlaybackSignalVolume: 可以设置播放音量(默认值100, 调整范围0~400, 自带溢出保护);
  5. 调用接口 enableLocalAudio: 可以开启/关闭自己的音频;
  6. 调用接口 muteLocalAudioStream: 可以静音自己的音频;
  7. 调用接口 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 String 设置的音频质量
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 取消接收远端音视频流
×

反馈成功

非常感谢您的反馈,我们会继续努力做得更好。