开启音量/说话人检测

本文档介绍如何使用ARTC SDK开启音量和说话人回调功能。

功能介绍

ARTC SDK 支持开启音量回调功能,App 可获取本地推流、播放及拉流用户的音量信息,用于实现音量波纹提示,展示房间内当前说话人。同时还支持说话人回调,可识别并返回当前音量最大的说话人。

调用时机

  1. 创建RTC引擎后。

  2. 用户入会前后均可。

示例代码

Android

开启/关闭功能

接口详细说明请参见enableAudioVolumeIndicationregisterAudioVolumeObserver

// 注册回调
mAliRtcEngine.registerAudioVolumeObserver(new AliRtcEngine.AliRtcAudioVolumeObserver() {
  //请参见回调接口
)
// 开启
mAliRtcEngine.enableAudioVolumeIndication(300, 3, 1)

// 关闭
mAliRtcEngine.enableAudioVolumeIndication(0, 0, 0)
// 取消回调
mAliRtcEngine.unRegisterAudioVolumeObserver();

回调接口

回调详细说明请参见onAudioVolumeonActiveSpeaker

// 注册回调
mAliRtcEngine.registerAudioVolumeObserver(new AliRtcEngine.AliRtcAudioVolumeObserver() {
  @Override
  public void onAudioVolume(List<AliRtcEngine.AliRtcAudioVolume> list, int totalVolume) {
    ThreadUtils.runOnUiThread(new Runnable() {
      @Override
      public void run() {
        for (AliRtcEngine.AliRtcAudioVolume it : list) {
          // 本地推流
          if (it.uid == "0")
          {
          }
          // 本地播放
          else if (it.uid == "1") {
          }
          // 拉流远端用户
          else {
            
          }
        }
      }
    }
  }
  @Override
  public void onActiveSpeaker(String activeSpeaker) {
    }
  }
)

iOS/Mac

开启/关闭功能

接口详细说明请参见enableAudioVolumeIndication

// 开启
[self.engine enableAudioVolumeIndication:300 smooth:3 reportVad:1]

// 关闭
[self.engine enableAudioVolumeIndication:0 smooth:0 reportVad:0]

回调接口

回调详细说明请参见onAudioVolumeCallbackonActiveSpeaker

// 回调
virtual void OnAudioVolumeCallback(const AliEngineUserVolumeInfo* volumeInfo, int volumeInfoCount, int totalVolume)
{
}
virtual void OnActiveSpeaker(const char *uid)
{
}

Windows

开启/关闭功能

接口详细说明请参见EnableAudioVolumeIndication

// 开启
mAliRtcEngine.enableAudioVolumeIndication(300, 3, 1)

// 关闭
mAliRtcEngine.enableAudioVolumeIndication(0, 0, 0)

回调接口

回调详细说明请参见OnAudioVolumeCallbackOnActiveSpeaker

// 回调
void CTutorialDlg::OnAudioVolumeCallback(const AliEngineUserVolumeInfo* volumeInfo, int volumeInfoCount, int totalVolume)
{

}

void CTutorialDlg::OnActiveSpeaker(const char *uid)
{

}