Comment couper tous les sons dans une page avec JS?
Comment puis-je couper tout le son sur ma page avec JS?
Cela devrait muet HTML5 <audio>
et <video>
tags avec Flash et ses amis.
4 réponses
règle n ° 1: N'activez jamais audio autoplay lors du chargement de la page.
de toute façon je vais montrer pour HTML5 en utilisant jQuery:
// WARNING: Untested code ;)
window.my_mute = false;
$('#my_mute_button').bind('click', function(){
$('audio,video').each(function(){
if (!my_mute ) {
if( !$(this).paused ) {
$(this).data('muted',true); //Store elements muted by the button.
$(this).pause(); // or .muted=true to keep playing muted
}
} else {
if( $(this).data('muted') ) {
$(this).data('muted',false);
$(this).play(); // or .muted=false
}
}
});
my_mute = !my_mute;
});
les lecteurs Flash Media dépendent de L'API personnalisée (hopefuly) exposée à JavaScript.
mais vous obtenez l'idée, itérez à travers les médias, Vérifiez/stockez le statut de lecture, et muet/unmute.
cela peut facilement être fait dans vanilla JS:
// Mute a singular HTML5 element
function muteMe(elem) {
elem.muted = true;
elem.pause();
}
// Try to mute all video and audio elements on the page
function mutePage() {
var videos = document.querySelectorAll("video"),
audios = document.querySelectorAll("audio");
[].forEach.call(videos, function(video) { muteMe(video); });
[].forEach.call(audios, function(audio) { muteMe(audio); });
}
ou dans ES6:
// Mute a singular HTML5 element
function muteMe(elem) {
elem.muted = true;
elem.pause();
}
// Try to mute all video and audio elements on the page
function mutePage() {
document.querySelectorAll("video").forEach( video => muteMe(video) );
document.querySelectorAll("audio").forEach( audio => muteMe(audio) );
}
bien entendu, Cela ne fonctionne qu'avec <video>
ou <audio>
éléments, comme des éléments comme Flash ou JS audio initialisé est impossible à restreindre en général.
j'ai fait comme ceci:
Array.prototype.slice.call(document.querySelectorAll('audio')).forEach(function(audio) {
audio.muted = true;
});
tenir une référence à tous les éléments audio / vidéo à l'intérieur d'un tableau et ensuite faire une fonction qui effectue une boucle sur eux tout en mettant le .muted=true
.