调整通话音量

最近更新时间:2022-09-20 05:17:40

功能描述

使用 Web SDK 时,SDK 可以对采集声音、播放声音等进行音量调整,来满足产品在声音上的个性化需求。

调整音量实际上是对音频轨道的输出或输入的音量进行调整,音频轨道分为:本地音频轨道远端用户的音频轨道,可通过音频轨道的 setVolume 方法调整音频音量。

功能实现

调整采集音量

调整采集音量:对本地音频轨道所采集声音的信号幅度进行放大或缩小,从而控制采集音量的大小。

实现步骤

  • 创建一个本地音频轨道 localAudioTrack
  • 调用 setVolume 调整本地音频轨道的采集音量大小

本地音频轨道可以通过以下 API 获取:

方法描述
createMicrophoneAudioTrack通过麦克风采集的音频创建音频轨道
createBufferSourceAudioTrack通过音频文件创建音频轨道
createCustomAudioTrack创建自定义音频轨道

采集音量取值范围:[0, 1000]

  • 最小值:0 (静音)
  • 默认值:100 (原始音量)
  • 最大值:1000 (原始音量放大10倍)

采集音量设置过高在设备上播放可能出现爆音现象。

示例

// 创建的本地麦克风音频轨道
const localAudioTrack = await ArRTC.createMicrophoneAudioTrack();
// 麦克风音量减半
localAudioTrack.setVolume(50);
// 麦克风音量增大一倍
localAudioTrack.setVolume(200);
// 将麦克风音量设置为 0
localAudioTrack.setVolume(0);

调整播放音量

远端用户音频轨道是通过订阅远端用户音频轨道获得。

调整播放音量:对远端用户音频轨道播放前的声音信号幅度进行放大或缩小,从而控制输出音量的大小。

实现步骤

  • 获取远端用户的音频轨道。
  • 调用 setVolume 调整音频轨道的播放音量大小

播放音量取值范围:[0, 1000]

  • 最小值:0 (静音)
  • 默认值:100 (原始音量)
  • 最大值:1000 (原始音量放大10倍)

播放音量设置过高在设备上可能出现爆音现象。

示例

remoteUser: 远端用户
remoteUser.audioTrack: 远端用户的音频轨道

// 监听远端用户发布的音视频
rtcClient.on("user-published", async (remoteUser, mediaType) => {
  if (mediaType === "audio") {
    // 订阅并获得远端用户发布的音频轨道
    await rtcClient.subscribe(remoteUser, mediaType);

    // 将音量减少一半
    remoteUser.audioTrack.setVolume(50);
    // 将音量增大一倍
    remoteUser.audioTrack.setVolume(200);
    // 将远端音量设置为 0
    remoteUser.audioTrack.setVolume(0);
  }
})

API 参考