首页 > 解决方案 > 如何使用 Agora 的 Web SDK v4.x 将本地麦克风静音并触发静音事件

问题描述

我正在使用 Agora 的 Web SDK 进行群组音频通话。我正在尝试实现一个简单的静音按钮,用户可以在通话中单击该按钮以静音他们的音频。

当本地用户将他们的麦克风静音时,远程用户应该会看到该用户的麦克风已静音。为了实现这一点,当用户连接到流时,我们添加了一个事件处理程序来侦听当远程用户将他们的麦克风静音时应该触发的“静音音频”事件。

在 Web SDK 3.x 系列中有一个带静音功能的流对象,但是在 4.x Agora API 中,我没有看到这样的功能。

现在我正在使用 localAudioTrack.setVolume(0) 静音和 localAudioTrack.setVolume(100) 取消静音,除了它不会触发“静音音频”事件让远程参与者知道远程用户被静音或取消静音之外,它的工作原理.

我也试过 localAudioTrack.setEnabled(false) 来静音本地音频,但这不起作用。

在此不胜感激。谢谢!

标签: agora.io

解决方案


setEnabled是在新的 Agora NG SDK 中静音音频/视频的正确方法。

示例代码:

function toggleMic() {
  if ($("#mic-icon").hasClass('fa-microphone')) {
    localTracks.audioTrack.setEnabled(false);
    console.log("Audio Muted.");
  } else {
    localTracks.audioTrack.setEnabled(true);
    console.log("Audio Unmuted.");
  }
  $("#mic-icon").toggleClass('fa-microphone').toggleClass('fa-microphone-slash');
}

// Toggle Video
function toggleVideo() {
  if ($("#video-icon").hasClass('fa-video')) {
    localTracks.videoTrack.setEnabled(false);
    console.log("Video Muted.");
  } else {
    localTracks.videoTrack.setEnabled(true);
    console.log("Video Unmuted.");
  }
  $("#video-icon").toggleClass('fa-video').toggleClass('fa-video-slash');
}

推荐阅读