设置通话音量
更新时间: 2024/09/09 11:39:31
本文介绍如何通过 NERoom SDK 静音或取消静音、设置通话音量。
前提条件
- 您需要先调用 joinRoom 方法加入 NERoom 的房间。
- 此房间开启了 RTC 房间的配置,即在创建房间时,已在
NECreateRoomOptions
方法中,设置enableRtc
参数为 true,具体操作方法请参见创建房间。
打开或关闭本地音频
技术原理
配置步骤
-
调用 getRoomContext 方法获取房间上下文。
调用此方法时,您需要将
roomUuid
设置为您所加入房间的 ID。 -
打开或关闭本地音频。
- 调用 unmuteMyAudio 方法开启本地音频采集。
- 调用muteMyAudio 方法关闭本地音频采集。
示例代码
打开本地音频的示例代码如下:
/**
* 获取房间上下文NERoomContext
* @param roomUuid 房间ID
*/
const NERoomContext = NERoomService.getRoomContext(roomUuid)
NERoomContext.rtcController.unmuteMyAudio().then(res => {
console.log(res, 'unmuteMyAudio success')
}).catch(err => {
console.error(res, 'unmuteMyAudio fail')
})
关闭本地音频的示例代码如下:
/**
* 获取房间上下文NERoomContext
* @param roomUuid 房间ID
*/
const NERoomContext = NERoomService.getRoomContext(roomUuid)
NERoomContext.rtcController.muteMyAudio().then(res => {
console.log(res, 'muteMyAudio success')
}).catch(err => {
console.error(res, 'muteMyAudio fail')
})
设置本地采集音量
在 K 歌和语聊房等场景中,用户往往需要调整通话音量,您可以通过设置采集音量实现该功能。
除此之外,NERoom 也支持通过监听回调的方式获取房间内成员的音量。在一些语音连麦场景或者视频会议场景中,产品应用层常常需要获取发言者的音量,并通过 UI 进行音量展示,或者根据发言者的音量大小进行视图布局的动态调整。详细信息请参考监测发言者音量。
技术原理
NERoom 通过录音设备采集房间内成员的音频信号,将其录制下来以后播放给远端用户收听。
实现方法
-
调用 getRoomContext 方法获取房间上下文。
调用此方法时,您需要将
roomUuid
设置为您所加入房间的 ID。 -
在加入房间前或加入房间后,调用
adjustRecordingSignalVolume
方法设置录制声音的信号幅度,从而达到调节采集音量的目的。该方法通过
volume
参数设置录音信号的音量,取值范围为 0 ~ 100:- 0: 静音。
- 100: 最大音量。
示例代码
/**
* 获取房间上下文NERoomContext
* @param roomUuid 房间ID
*/
const NERoomContext = NERoomService.getRoomContext(roomUuid)
/**
* 调节本端的采集音量
* @param volume 音量大小
*/
NERoomContext.rtcController.adjustRecordingSignalVolume(volume: number)
静音或取消静音房间其他成员
您可以在云信控制台上配置某角色是否具备静音房间其他成员的权限,只有具备该权限的角色才可以执行此操作。
配置步骤
-
调用 getRoomContext 方法获取房间上下文。
调用此方法时,您需要将
roomUuid
设置为您所加入房间的 ID。 -
静音或取消静音房间其他成员。
- 调用 muteMemberAudio 方法,静音房间中的某个成员。
- 调用 unmuteMemberAudio 方法,取消静音房间中的某个成员。
一次只能传入一个成员的 uuid。
示例代码
静音房间其他成员的示例代码如下:
/**
* 获取房间上下文NERoomContext
* @param roomUuid 房间ID
*/
const NERoomContext = NERoomService.getRoomContext(roomUuid)
/**
* 静音房间其他成员
* @param userUuid 被静音成员id
*/
NERoomContext.rtcController.muteMemberAudio(userUuid).then(res => {
console.log(res, 'muteMemberAudio success')
}).catch(err => {
console.error(res, 'muteMemberAudio fail')
})
取消静音房间其他成员的示例代码如下:
/**
* 获取房间上下文NERoomContext
* @param roomUuid 房间ID
*/
const NERoomContext = NERoomService.getRoomContext(roomUuid)
/**
* 取消静音房间其他成员
* @param userUuid 被静音成员id
*/
NERoomContext.rtcController.unmuteMemberAudio(userUuid).then(res => {
console.log(res, 'unmuteMemberAudio success')
}).catch(err => {
console.error(res, 'unmuteMemberAudio fail')
})
调节音量的接口对比
接口名称 |
描述 |
适用场景 |
---|---|---|
muteMyAudio、 unmuteMyAudio | 开启或关闭本地音频采集和发送 | 适用于简单的音频开关场景。静音后,SDK 所有声音都不会播放。如果在有伴音的场景中,调用该接口会同时关闭伴音的采集和发送 |
adjustRecordingSignalVolume | 调节采集信号音量 | 适用于需要精确调整本地音频采集(包括外部输入)音量的场景,比如 KTV、语聊房 |
API 参考
方法 | 功能描述 |
---|---|
muteMyAudio | 关闭本地音频采集。 |
unmuteMyAudio | 开启本地音频采集。 |
muteMemberAudio | 静音房间中的某个成员。 |
unmuteMemberAudio | 取消静音房间中的某个成员。 |
adjustRecordingSignalVolume | 调节本端的采集音量。 |
此文档是否对你有帮助?