Javascript 如何创建播放声音功能

Javascript 如何创建播放声音功能,javascript,jquery,Javascript,Jquery,有时,当检测到错误时,我希望我的页面播放声音。 我制作了这个javascript,它不起作用: function playsound(){ var obj = document.createElement("audio"); obj.setAttribute("src", "click.mp3"); obj.play(); } if($('#noerrors').css('display') != 'none' ) { playsound(); } 为什么不

有时,当检测到错误时,我希望我的页面播放声音。 我制作了这个javascript,它不起作用:

function playsound(){
    var obj = document.createElement("audio");
    obj.setAttribute("src", "click.mp3");
    obj.play();
}

if($('#noerrors').css('display') != 'none' ) {
    playsound();

}
为什么不呢

我想叫playsound();只要我高兴

使用时:

if($('#noerrors').css('display') != 'none' ) {
    var obj = document.createElement("audio");
    obj.setAttribute("src", "click.mp3");
    obj.play();

}
它很好用。第一个脚本有什么问题?


单击此处测试声音
函数play_sound()
{
$('error_sound').html('');
document.getElementById('err_player').play();
}
$('.click').bind('click',播放声音);

您不能在jQuery元素上调用play,但可以调用它下面的HTML元素。

我可以为您推荐另一种解决方案吗

开始时只定义一次
,然后通过选择该标记调用
play()

1.可以随时插入,例如在
末尾

<audio id="myAudio" src="click.mp3"></audio>
我建议这个解决方案():


为什么要使用
get()
play()
之前?“它不起作用”,您是否有任何错误?根据您提供的信息,很难判断。$.get()没有任何意义。你能在jsfiddle.net中提供一些例子吗?也许你在mp3完全加载之前就已经开始播放了@利亚姆,删除了$.get();。事实上,这毫无意义。但仍然不起作用。也许MP3没有完全加载,如何让功能等待加载?
<audio id="myAudio" src="click.mp3"></audio>
if($('#noerrors').css('display') != 'none' ) {
   document.getElementById("myAudio").play();
} else {
   document.getElementById("myAudio").pause();
   document.getElementById("myAudio").currentTime = 0;
}
function playsound(){
    var $audioElement = $("<audio id='audioId'/>");
    $audioElement.attr('src', "click.mp3");
    $audioElement[0].load();
    $audioElement[0].play();
}

if($('#noerrors').css('display') != 'none' ) {
    playsound();
}
$audioElement.on('canplay canplaythrough', function(){
     $audioElement[0].play();
});