音视频通话 2.0
Android
动态与公告
更新日志(V4.6)
更新日志(V5)
活动与公告
【活动】音视频通话内容安全检测限时补贴
【活动】赠送100万分钟音视频通话时长
【邀测】音视频通话2.0V5.3邀请公测
新手接入指南
产品简介
产品介绍
功能特性
产品优势
应用场景
基本概念
使用限制
性能指标
产品计费
按量计费
资源包
体验 Demo
下载 SDK 和示例代码
升级指南
快速开始
快速跑通 Sample Code
接入流程
创建应用
开通服务
集成 SDK
实现音视频通话
Token 鉴权
高级 Token 鉴权
基础功能
设置音频属性
设置视频属性
设置视频旋转方向
设置通话音量
屏幕共享
音频共享
监测发言者音量
通话前网络质量探测
通话中质量监测
进阶功能
音频管理
客户端音频录制
原始音频数据
美声变声与混响
耳返
自定义音频采集与渲染
音效与伴音
设置音频订阅优先级
音频裸流传输
媒体补充增强信息SEI
视频管理
视频截图
水印
云信美颜
相芯美颜
自定义视频采集
虚拟背景
视频图像畸变矫正
视频裸流传输
多房间管理
设备管理
视频设备管理
音频设备管理
媒体流管理
跨房间媒体流转发
媒体流加密
视频流回退
云端录制
使用云代理
本地服务端录制
AI 融合功能
AI 超分
AI 降噪
场景实践
1 对 1 娱乐社交
语聊房
PK连麦
在线教育
互联网问诊
最佳实践
音视频参数配置推荐
房间连接状态管理
实现音视频安全检测
轻松构建本土Clubhouse
API 参考
Android API 参考
服务端 API
错误码(V5)
错误码(V4.x)
控制台指南
常见问题处理
FAQ
错题集
获取音频 Dump 文件
音频常见问题排查
视频常见问题排查
服务协议

设置通话音量

更新时间: 2023/05/17 11:19:17

在音视频通话和互动直播过程中,为了提高产品使用者的体验,NERTC SDK 支持调整各种声音的音量,例如调整 SDK 采集的声音、播放的声音等。音量调节功能适用于多种需要自定义调节音量的场景。

NERTC SDK 也支持通过监听回调的方式获取房间内成员的音量。在一些语音连麦场景或者视频会议场景中,产品应用层常常需要获取发言者的音量,并通过 UI 进行音量展示,或者根据发言者的音量大小进行视图布局的动态调整。详细信息请参考监测发言者音量

此外,本文档将在末尾为您介绍 NERTC SDK 相关音频接口的实现原理和适用场景,具体内容请点击音频主要接口对比查看。

设置采集音量

NERTC SDK 通过录音设备采集房间内成员的音频信号,将其录制下来以后播放给远端用户收听。

技术原理

采集.png

实现方法

调用 adjustRecordingSignalVolume 方法设置录制声音的信号幅度,从而达到调节采集音量的目的。

该方法通过 volume 参数设置录音信号的音量,取值范围为 0 ~ 400:

  • 0: 静音。
  • 100: (默认值)原始音量,即不对信号做缩放。
  • 400: 原始音量的 4 倍,即把信号放大到原始信号的 4 倍。

建议设置采集音量时使用默认值(100)或小于该值,否则可能会导致音质问题。

示例代码如下:

//将采集音量设置为100
NERtcEx.getInstance().adjustRecordingSignalVolume(100);

设置播放音量

在音视频通话过程中,音频信号从发送端进入到接收端,然后使用播放设备进行播放。

技术原理

设置播放音量-移动端.png

实现方法

有三种方法调节播放声音的信号幅度,从而达到调节播放音量的目的。三种方法的区别和适用场景如下表所示。

接口 生效的对象 调用时机
adjustPlaybackSignalVolume 本地播放的所有远端用户的音频流。 本端用户加入房间前后均可调用。
远端用户进入房间之前,就可以控制音量。
adjustUserPlaybackSignalVolume 本地播放的某个远端用户的音频流。 本端用户加入房间后且对应的远端用户进入房间后调用。
adjustChannelPlaybackSignalVolume 某个房间内的所有远端用户的音频流。
在多房间场景中,可以使用该方法单独调整主房间或者某个子房间的所有远端用户的播放音量。
本端用户加入房间前后均可调用。
远端用户进入房间之前,就可以控制音量。

如果您在adjustPlaybackSignalVolumeadjustChannelPlaybackSignalVolumeadjustUserPlaybackSignalVolume 中都设置了音量,实际输出的音量值为 “adjustPlaybackSignalVolume 音量值 × adjustChannelPlaybackSignalVolume 音量值 × adjustUserPlaybackSignalVolume 音量值”。例如 adjustPlaybackSignalVolume 中的音量值设为 100,adjustChannelPlaybackSignalVolume 中的音量值设为 90,adjustUserPlaybackSignalVolume 中的音量值设为70,实际输出音量为“100% × 90% × 70% = 63%”。

  • 调用 adjustPlaybackSignalVolume 方法可以调节本地播放的所有远端用户的音量。

    参数说明如下表所示。

    参数 类型 描述
    volume int 播放音量的百分比,取值范围为 [0,400]。
    • 0:静音。
    • 100:原始音量。
    • 400:原始音量的 4 倍(自带溢出保护)。

    建议设置本地播放音量时使用默认值(100)或小于该值,否则可能会导致音质问题。

    示例代码如下:

    //调整本地播放的所有远端用户的播放音量为50
    NERtcEx.getInstance().adjustPlaybackSignalVolume(50);
    //调整本地播放的所有远端用户的播放音量为0,静音所有用户
    NERtcEx.getInstance().adjustPlaybackSignalVolume(0);
    
  • 调用 adjustUserPlaybackSignalVolume 方法可以调节本地播放的指定远端用户的音量。

    参数说明如下表所示。

    参数 类型 描述
    uid Long 远端用户的 ID。
    volume int 播放音量的百分比,取值范围为 [0,100]。
    • 0:静音。
    • 100:原始音量。

    多次调用该方法,可以设置不同远端用户的播放音量;也可以反复调节某个远端用户的播放音量。

    示例代码如下:

    //调整本地播放的uid为12345的用户的播放音量为50
    NERtcEx.getInstance().adjustUserPlaybackSignalVolume(12345, 50);
    //调整本地播放的uid为12345的用户的播放音量为0,静音该用户。
    NERtcEx.getInstance().adjustUserPlaybackSignalVolume(12345, 0);
    
  • 调用 adjustChannelPlaybackSignalVolume 方法可以调节本地播放的指定房间内所有远端用户的音量。

    参数说明如下表所示。

    参数 类型 描述
    volume int 播放音量的百分比,取值范围为 [0,400]。
    • 0:静音。
    • 100:原始音量。
    • 400:原始音量的 4 倍(自带溢出保护)。
    • 建议设置本地播放音量时使用默认值(100)或小于该值,否则可能会导致音质问题。
    • 如果是调整主房间音量,请调用 NERtcEx 类下面的 adjustChannelPlaybackSignalVolume
    • 如果是调整子房间音量,请调用NERtcChannel类下面的 adjustChannelPlaybackSignalVolume

    示例代码如下:

    //调整本地播放的主房间内所有用户的播放音量为50
    NERtcEx.getInstance().adjustChannelPlaybackSignalVolume(50);
    
    //调整本地播放的子房间1所有用户的播放音量为50
    mRtcChannel.adjustChannelPlaybackSignalVolume(50);
    

设置耳返音量

NERTC SDK 通过录音设备采集房间内成员的音频信号,然后使用播放设备进行播放,实现耳返功能。

技术原理

耳返.png

实现方法

调用 enableEarback 方法开启耳返功能之后,您可以调用 setEarbackVolume 方法设置耳返音量。

示例代码如下:

//将耳返音量设置为100
NERtcEx.getInstance().setEarbackVolume(100);

音频主要接口对比

接口名称
功能及适用场景
实现原理图解
enableLocalAudio 开启或关闭本地音频采集和发送 enablelocalaudio.png
适用于简单的音频开关场景
enableMediaPub 开启或关闭本地媒体流(主流)的发送 enablemediapub.png
适用于单独开启麦克风但不发送音频的场景,比如会议场景、大房间
muteLocalAudioStream 开启或关闭本地音频主流的发送 mutelocalaudio.png
适用于需要频繁静音\取消静音操作的场景
setRecordDeviceMute 静音音频采集设备 setRecordDeviceMute.png
适用于麦克风采集和伴音同时开启时,只发送伴音音频的场景
adjustRecordingSignalVolume 调节采集信号音量 adjustRecordingSignalVolume.png
适用于需要精确调整本地音频采集(包括外部输入)音量的场景,比如 KTV语聊房
此文档是否对你有帮助?
有帮助
我要吐槽
  • 设置采集音量
  • 技术原理
  • 实现方法
  • 设置播放音量
  • 技术原理
  • 实现方法
  • 设置耳返音量
  • 技术原理
  • 实现方法
  • 音频主要接口对比