如何解决如何使用 Agora 的 Web SDK v4.x 将本地麦克风静音并触发 mute-audio 事件
我使用 Agora 的 Web SDK 进行群组音频通话。我正在尝试实现一个简单的静音按钮,用户可以在通话中单击该按钮以将其音频静音。
当本地用户将麦克风静音时,远程用户应该会看到该用户的麦克风已静音。为了实现这一点,当用户连接到流时,我们添加了一个事件处理程序来侦听“静音音频”事件,该事件应该在远程用户将麦克风静音时触发。
在Web SDK 3.x系列中有一个带有静音功能的流对象,但是在4.x Agora API中,我没有看到这样的功能。
现在我使用 localAudioTrack.setVolume(0) 静音,使用 localAudioTrack.setVolume(100) 取消静音,除了不会触发“静音音频”事件以让远程参与者知道远程用户是静音或取消静音。
我也试过 localAudioTrack.setEnabled(false) 来使本地音频静音,但这不起作用。
希望得到一些指导。谢谢!
解决方法
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');
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。