The unmute
event is sent to a MediaStreamTrack
when the track's source is once again able to provide media data after a period of not being able to do so.
This ends the muted
state that began with the mute
event.
Note: The condition that most people think of as "muted" (that is, a user-controllable way to silence a track) is actually managed using the MediaStreamTrack.enabled
property, for which there are no events.
This event is not cancelable and does not bubble.
Use the event name in methods like addEventListener()
, or set an event handler property.
addEventListener("unmute", (event) => {});
onunmute = (event) => {};
In this example, event handlers are established for the mute
and unmute
events in order to detect when the media is not flowing from the source for the MediaStreamTrack
stored in the variable musicTrack
.
musicTrack.addEventListener(
"mute",
(event) => {
document.getElementById("timeline-widget").style.backgroundColor = "#aaa";
},
false,
);
musicTrack.addEventListener(
"unmute",
(event) => {
document.getElementById("timeline-widget").style.backgroundColor = "#fff";
},
false,
);
With these event handlers in place, when the track musicTrack
enters its muted
state, the element with the ID timeline-widget
gets its background color changed to #aaa
. When the track exits the muted state—detected by the arrival of an unmuted
event—the background color is restored to white.
You can also use the onunmute
event handler property to set up a handler for this event; similarly, the onmute
event handler is available for setting up a handler for the mute
event. The following example shows this:
musicTrack.onmute = (event) => {
document.getElementById("timeline-widget").style.backgroundColor = "#aaa";
};
musicTrack.mute = (event) => {
document.getElementById("timeline-widget").style.backgroundColor = "#fff";
};
The following example shows how to unmute tracks using receivers.
audioTrack.addEventListener("unmute", (event) => {
});
videoTrack.addEventListener("unmute", (event) => {
});
const transceivers = peer.getTransceivers();
const audioTrack = transceivers[0];
audioTrack.direction = "sendrecv";
const videoTrack = transceivers[1];
videoTrack.direction = "sendrecv";
transceivers
is an array of RTCRtpTransceiver
where you can find the audio or video track sent and received. For more information, see the direction
article.