通话音量监听
本文主要介绍如何通过 SDK 获取本地和远端用户在通话过程中的音量,进而判断用户是否在讲话。
实现方式是通过周期性调用 SDK 接口获取本地及远端音频 Track 的音量值,再通过音量值来判断用户是否在讲话
监听本地音量
SDK 提供了 QNLocalAudioTrack.GetVolumeLevel 接口用于获取本地音频 Track 的音量。
以麦克风 Track 为例,可以通过如下方式实现对本地采集音量的感知:
let volume: number = this.micTrack.GetVolumeLevel()
监听远端音量
SDK 提供了 QNRemoteAudioTrack.GetVolumeLevel 接口用于获取远端音频 Track 的音量。
可以通过如下方式实现对远端音频 Track 音量的感知:
let ret: number = this.micTrack.SetVolume(2.0)
注意事项
- 在安静的环境下,获取到 0.0x 大小的数值可能为环境音的音量,是预期的现象,可根据需求自行决定判断用户是否讲话的音量阈值
- 本地音量获取的数值会受到 QNLocalAudioTrack.SetVolume 接口的影响,在确定讲话阈值的时候需要搭配使用
- 获取音量接口为主动接口,需要您启动一个定时器,进行周期性的音量获取
示例代码
上述已经简单介绍了通话音量的监听方式,相对应的示例代码可参考 API-Examples-HarmonyOS。
文档反馈
(如有产品使用问题,请 提交工单)