agora.io - 如何使用 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) 来静音本地音频,但这不起作用。
在此不胜感激。谢谢!
解决方案
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');
}
推荐阅读
- xml - 如何使用 perl XML::LibXML 将多个 xml 文件解析为一个 DOM 对象?
- mysql - SQL (MySQLi) 最适合文本比较
- java - 如何实现栈中的空元素
- android - 带全边框的 GridLayoutManager
- c# - 如何在 C# 中从我的代码中从大型文本文件中提取数据期间消除滞后?
- python - 为什么 scipy.ststs.contingency.expected_freq 返回的预期频率不是我所期望的?
- google-maps - 地点自动完成不返回地点(城市)字段
- backup - 捕获 AMI BIOS /ACPI 2.0 时 UEFI 卷无效
- php - 在关闭 Magento 2 的头部之前添加代码
- mysql - 如何从同一个表中的其他 2 列更新 mysql 中的列