如何使用jQuery播放音频文件?

时间:2013-04-08 20:50:03

标签: jquery html5-audio

我很难让音频与jQuery一起工作。我用.wav和.ogg格式试过这个。 (Firefox 19.0.2)

单击开始按钮会产生:

  

TypeError:buzzer.play不是函数

我不确定jQuery选择器是否返回一个数组,但我尝试用两者捕获音频文件:

var buzzer = $('buzzer');

var buzzer = $('buzzer')[0]; 

无论如何,我无法播放音频元素。

<!DOCTYPE html>     
<html>     
    <head>      
    <meta name="viewport" content="width=device-width, initial-scale=1">     
    <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>    
</head>     

<body>     

<audio id="buzzer" src="buzzer.ogg" type="audio/ogg">Your browser does not support the &#60;audio&#62; element.</audio>    
<form id='sample' action="#" data-ajax="false">    
    <fieldset>    
     <input value="Start" type="submit">    
     </fieldset>    
</form>    
<script type="text/javascript">    

var buzzer = $('buzzer')[0];    

$(document).on('submit', '#sample', function()  {     
    buzzer.play();    
    return false;    
});    

</script>    
</body>    
</html>  

3 个答案:

答案 0 :(得分:13)

您忘记了ID选择器中的哈希#

var buzzer = $('#buzzer')[0];  

$(document).on('submit', '#sample', function()  {     
    buzzer.play();    
    return false;    
});    

document.getElementById('buzzer')看起来更合适!

我将HTML更改为:

<audio id="buzzer" src="buzzer.ogg" type="audio/ogg"></audio>    
<input type="button" value="Start" id="start" />

并且做:

$('#start').on('click', function() {
    $('#buzzer').get(0).play();
});

答案 1 :(得分:0)

var buzzer = document.getElementById("buzzer");

你也可以这样做:

var buzzer = $('audio')[0]; 

如果ID buzzer是唯一的(它应该),您也可以这样做 - 不需要[0]

var buzzer = $('#buzzer');

答案 2 :(得分:0)

您正在使用ID在HTML中标记音频标记。因此,您应该在使用选择器时添加#。

var buzzer = $('#buzzer')[0]; 

此外,您使用id来识别您的音频,您也可以像这样定义您的有价值:

var buzzer = $('#buzzer');

不必添加[0],[0]意味着你得到第一个元素。