【问题标题】:How do you mute the local mic using Agora's Web SDK v4.x & trigger the mute-audio event如何使用 Agora 的 Web SDK v4.x 将本地麦克风静音并触发静音事件
【发布时间】:2023-04-09 19:41:01
【问题描述】:

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

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

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

现在我正在使用 localAudioTrack.setVolume(0) 静音和 localAudioTrack.setVolume(100) 取消静音,除了它不会触发“mute-audio”事件让远程参与者知道远程用户是静音或取消静音。

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

希望能得到一些指导。谢谢!

【问题讨论】:

    标签: agora.io


    【解决方案1】:

    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');
    }
    

    【讨论】:

    • 谢谢!当我使用setEnabled 时,我没有看到为远程客户端触发的client.on("unmute-audio", (evt) => {...}) 回调。
    • 它将触发“用户未发布”事件。 SDK v4.x 中没有“取消静音”事件
    猜你喜欢
    • 1970-01-01
    • 2021-12-04
    • 1970-01-01
    • 1970-01-01
    • 2017-10-26
    • 2016-06-01
    • 2021-06-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多