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