使用Javascript播放音频元素(html5)

时间:2011-06-16 02:38:28

标签: javascript jquery html5 audio

我正试图弄清楚如何触发从javascript播放音频。我得到了一些看起来像的HTML:

<div class='audio' >foo
<audio preload='auto' controls src='test.wav'>
<b>Your browser does not support the audio tag.</b>
</audio>
</div>

我试图通过以下方式触发它:

$(document).ready(function () {
    $('.audio').each(function(){
        var audio = $(this).find('audio').get();
        $(this).click(function(){
            audio.volume = 100;
            alert('1 '+audio);
            audio.play();
            alert('2');
        });
    });
});

提醒('1'+音频);按预期工作,并将音频报告为HTMLAudioElement。但警报('2');没有被调用因为我得到错误'audio.play'不是一个函数。我该怎么做才能解决这个问题?

2 个答案:

答案 0 :(得分:7)

您的代码看起来很完美。你得到的错误是“alert.play”不是函数或“audio.play”不是函数。

我认为

var audio = $(this).find('audio').get();

返回一个数组试试这个

var audio = $(this).find('audio').get(0);

答案 1 :(得分:4)

如果您为音频标签提供ID:

,则只需使用JavaScript即可在不使用jQuery的情况下控制音频
<audio id="myAudioTagID" type="audio/mpeg" src="sound.mp3"></audio>

然后你可以简单地获取元素并应用.pause(),. start(),stop():

var audio = document.getElementById("myAudioTagID");
audio.play();
audio.pause();
audio.stop();