MediaStreamTrack:mute 事件
当 MediaStreamTrack 的源暂时无法提供媒体数据时,会向该 MediaStreamTrack 发送 mute 事件。
当轨道再次能够产生媒体输出时,会发送一个 unmute 事件。
在 mute 事件和 unmute 事件之间的时间段内,轨道的 muted 属性的值为 true。
注意:大多数人认为的“静音”条件(即用户切换的静音轨道状态)实际上是通过 MediaStreamTrack.enabled 属性管理的,该属性没有事件。
此事件不可取消,也不会冒泡。
语法
在诸如 addEventListener() 之类的方法中使用事件名称,或设置事件处理程序属性。
js
addEventListener("mute", (event) => { })
onmute = (event) => { }
事件类型
一个通用的 Event。
示例
在此示例中,为 mute 和 unmute 事件建立了事件处理程序,以检测 musicTrack 引用的 MediaStreamTrack 的媒体是否未从源流出。
js
musicTrack.addEventListener("mute", (event) => {
  const widget = document.getElementById("timeline-widget");
  widget.style.backgroundColor = "#aaaaaa";
});
musicTrack.addEventListener("unmute", (event) => {
  document.getElementById("timeline-widget").style.backgroundColor = "white";
});
有了这些事件处理程序,当 musicTrack 轨道进入其 muted 状态时,ID 为 timeline-widget 的元素背景色将变为 #aaaaaa。当轨道退出静音状态(通过 unmute 事件的到来检测到)时,背景色将恢复为白色。
您还可以使用 onmute 事件处理程序属性来设置此事件的处理程序;同样,onunmute 事件处理程序也可用于设置 unmute 事件的处理程序。以下示例演示了这一点
js
musicTrack.onmute = (event) => {
  document.getElementById("timeline-widget").style.backgroundColor = "#aaaaaa";
};
musicTrack.onunmute = (event) => {
  document.getElementById("timeline-widget").style.backgroundColor = "white";
};
通过接收器静音轨道
以下示例展示了如何使用接收器静音轨道。
js
// Peer 1 (Sender)
const transceivers = peer.getTransceivers();
const audioTrack = transceivers[0];
audioTrack.direction = "recvonly";
const videoTrack = transceivers[1];
videoTrack.direction = "recvonly";
// Peer 2 (Receiver)
audioTrack.addEventListener("mute", (event) => {
  // Do something in UI
});
videoTrack.addEventListener("mute", (event) => {
  // Do something in UI
});
transceivers 是一个 RTCRtpTransceiver 数组,您可以在其中找到发送和接收的音频或视频轨道。有关更多信息,请参阅 direction 文章。
规范
| 规范 | 
|---|
| 媒体捕获和流 # dom-mediastreamtrack-onmute | 
浏览器兼容性
加载中…