使用jQuery </audio>将所有<audio>元素静音

时间:2014-03-08 15:39:40

标签: javascript jquery html html5 audio

问题描述(Fiddle):

我正在尝试遍历页面上的所有元素并使用jQuery将它们静音。 jQuery是不是不能很好地使用HTML5音频,还是有更好的方法?

代码:

$('#sound1').click(function() {
    var sound1 = new Audio();
    sound1.src = "http://sounddogs.com/previews/4006/mp3/209105_SOUNDDOGS__up.mp3"
    sound1.play();
});

$('#sound2').click(function() {
    var sound2 = new Audio();
    sound2.src = "http://sounddogs.com/previews/4023/mp3/210622_SOUNDDOGS__do.mp3"
    sound2.play();
});

$('#mute').click(function() {
    $('audio').each(function(i) {
        this.volume = 0;
    });
});

1 个答案:

答案 0 :(得分:1)

对播放的音乐使用volume控件可以对象

DEMO

<强>更新

您可以创建阵列tracks[]并将播放的音频存储到此中,并在点击静音时将所有这些音频静音。像这样的东西。

var tracks = [];
$('#sound1').click(function() {
    sound1 = new Audio();
    sound1.src = "http://sounddogs.com/previews/4006/mp3/209105_SOUNDDOGS__up.mp3"
    sound1.play();
    tracks.push(sound1);
});

$('#sound2').click(function() {
     sound2 = new Audio();
    sound2.src = "http://sounddogs.com/previews/4023/mp3/210622_SOUNDDOGS__do.mp3"
    sound2.play();
    tracks.push(sound2);
});

$('#mute').click(function() {
    for(var i=0; i<tracks.length; i++){
        tracks[i].volume = 0;
    }
});