设置通话音量
更新时间: 2024/09/18 16:26:13
在音视频通话和互动直播过程中,为了提高产品使用者的体验,NERTC SDK 支持调整各种声音的音量,例如调整 SDK 采集的声音、播放的声音等。音量调节功能适用于多种需要自定义调节音量的场景。
除此之外,NERTC SDK 也支持通过监听回调的方式获取房间内成员的音量。在一些语音连麦场景或者视频会议场景中,产品应用层常常需要获取发言者的音量,并通过 UI 进行音量展示,或者根据发言者的音量大小进行视图布局的动态调整。详细信息请参考监测发言者音量。
此外,本文档将在末尾为您介绍 NERTC SDK 相关音频接口的实现原理和适用场景,具体内容请点击音频主要接口对比查看。
设置采集音量
NERTC SDK 通过录音设备采集房间内成员的音频信号,将其录制下来以后播放给远端用户收听。
技术原理
实现方法
调用 adjustRecordingSignalVolume
方法设置录制声音的信号幅度,从而达到调节采集音量的目的。
该方法通过 volume
参数设置录音信号的音量,取值范围为 0 ~ 400:
- 0: 静音。
- 100: (默认值)原始音量,即不对信号做缩放。
- 400: 原始音量的 4 倍,即把信号放大到原始信号的 4 倍。
建议设置采集音量时使用默认值(100)或小于该值,否则可能会导致音质问题。
示例代码如下:
//将采集音量设置为100
device_manager_->adjustRecordingSignalVolume(100);
设置播放音量
在音视频通话过程中,音频信号从发送端进入到接收端,然后使用播放设备进行播放。
技术原理
实现方法
有三种方法调节播放声音的信号幅度,从而达到调节播放音量的目的。三种方法的区别和适用场景如下表所示。
接口 | 生效的对象 | 调用时机 |
---|---|---|
adjustPlaybackSignalVolume |
本地播放的所有远端用户的音频流。 | 本端用户加入房间前后均可调用。 远端用户进入房间之前,就可以控制音量。 |
adjustUserPlaybackSignalVolume |
本地播放的某个远端用户的音频流。 | 本端用户加入房间后且对应的远端用户进入房间后调用。 |
adjustChannelPlaybackSignalVolume |
本地播放的某个房间内的所有远端用户的音频流。 在多房间场景中,可以使用该方法单独调整主房间或者某个子房间的所有远端用户的播放音量。 |
本端用户加入房间前后均可调用。 远端用户进入房间之前,就可以控制音量。 |
如果您在adjustPlaybackSignalVolume
、 adjustChannelPlaybackSignalVolume
和 adjustUserPlaybackSignalVolume
中都设置了音量,实际输出的音量值为 “adjustPlaybackSignalVolume 音量值 × adjustChannelPlaybackSignalVolume 音量值 × adjustUserPlaybackSignalVolume 音量值”。例如 adjustPlaybackSignalVolume
中的音量值设为 100,adjustChannelPlaybackSignalVolume
中的音量值设为 90,adjustUserPlaybackSignalVolume
中的音量值设为70,实际输出的该远端用户的音量为“100% × 90% × 70% = 63%”。
-
调用
adjustPlaybackSignalVolume
方法可以调节本地播放的所有远端用户的音量。参数说明如下表所示。
参数 类型 描述 volume int 播放音量的百分比,取值范围为 [0,400]。 - 0:静音。
- 100:原始音量。
- 400:原始音量的 4 倍(自带溢出保护)。
建议设置本地播放音量时使用默认值(100)或小于该值,否则可能会导致音质问题。
示例代码如下:
//调整本端播放的所有远端用户的播放音量为50 rtc_engine_->adjustPlaybackSignalVolume(50); //调整本端播放的所有远端用户的播放音量为0,静音所有用户 rtc_engine_->adjustPlaybackSignalVolume(0);
-
调用
adjustUserPlaybackSignalVolume
方法可以调节本地播放的指定远端用户的音量。参数说明如下表所示。
参数 类型 描述 uid Long 远端用户的 ID。 volume int 播放音量的百分比,取值范围为 [0,100]。 - 0:静音。
- 100:原始音量。
多次调用该方法,可以设置不同远端用户在本地播放的音量;也可以反复调节某个远端用户在本地播放的音量。
示例代码如下:
//调整本端播放的uid为12345的用户的播放音量为50 rtc_engine_->adjustUserPlaybackSignalVolume(12345, 50); //调整本端播放的uid为12345的用户的播放音量为0,静音该用户。 rtc_engine_->adjustUserPlaybackSignalVolume(12345, 0);
-
调用
adjustChannelPlaybackSignalVolume
方法可以调节本地播放的指定房间内所有远端用户的音量。参数说明如下表所示。
参数 类型 描述 volume int 播放音量的百分比,取值范围为 [0,400]。 - 0:静音。
- 100:原始音量。
- 400:原始音量的 4 倍(自带溢出保护)。
- 建议设置本地播放音量时使用默认值(100)或小于该值,否则可能会导致音质问题。
- 如果是调整主房间音量,请调用
INERtcEngine
类下面的adjustChannelPlaybackSignalVolume
。 - 如果是调整子房间音量,请调用
INERtcChannel
类下面的adjustChannelPlaybackSignalVolume
。
示例代码如下:
//调整本地播放的主房间所有用户的播放音量为50 rtc_engine_->adjustChannelPlaybackSignalVolume(50); //调整本地播放的主房间所有用户的播放音量为0,静音该房间 rtc_engine_->adjustChannelPlaybackSignalVolume(0); //调整本地播放的子房间1所有用户的播放音量为50 rtc_channel1->adjustChannelPlaybackSignalVolume(50); //调整本地播放的子房间2所有用户的播放音量为50 rtc_channel2->adjustChannelPlaybackSignalVolume(50);
设置耳返音量
NERTC SDK 通过录音设备采集房间内成员的音频信号,然后使用播放设备进行播放,实现耳返功能。
技术原理
实现方法
调用 enableEarback
方法开启耳返功能之后,您可以调用 setEarbackVolume
方法设置耳返音量。
该方法通过 volume
参数设置播放信号的音量,取值范围为 0 ~ 100,默认值为 100。
示例代码如下:
//将耳返音量设置为100
device_manager_->enableEarback(100);
音频主要接口对比
接口名称 |
功能及适用场景 |
实现原理图解 |
---|---|---|
enableLocalAudio | 开启或关闭本地音频采集和发送 | |
适用于简单的音频开关场景 | ||
enableMediaPub | 开启或关闭本地媒体流(主流)的发送 | |
适用于单独开启麦克风但不发送音频的场景,比如会议场景、大房间 | ||
muteLocalAudioStream | 开启或关闭本地音频主流的发送 | |
适用于需要频繁静音\取消静音操作的场景 | ||
setRecordDeviceMute | 静音音频采集设备 | |
适用于麦克风采集和伴音同时开启时,只发送伴音音频的场景 | ||
adjustRecordingSignalVolume | 调节采集信号音量 | |
适用于需要精确调整本地音频采集(包括外部输入)音量的场景,比如 KTV、语聊房 |