2014-03-05 44 views
0

有时,当检测到错误时,我希望我的页面播放声音。 我做这个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(); 

} 

它工作正常。第一个脚本有什么问题?

+1

你为什么要用'ge t();'play()'之前? –

+1

“它不起作用”,你有什么错误吗? – RobinvdA

+0

根据您提供的信息很难分辨出来。 $ .get()没有意义。你能提供jsfiddle.net的例子吗? – Liam

回答

0

http://jsfiddle.net/3Camg/

<div id="error_sound"></div> 
<span class="click">Test Sound by clicking here</span> 

function play_sound() 
{ 
    $('#error_sound').html('<audio src="http://www.intriguing.com/mp/_sounds/hg/dead.wav" id="err_player"></audio>'); 
    document.getElementById('err_player').play(); 
} 

$('.click').bind('click',play_sound); 

不能调用jQuery的元素上播放,但强调它的HTML元素。

0

我可以建议你另一种解决方案吗?

之初定义<audio>只有一次,然后通过选择标签调用play()

1.Insert这个,只要你想,在<body>例如结束。

<audio id="myAudio" src="click.mp3"></audio> 

2.然后,如果你有一个错误,播放或以其他方式暂停:

​​
0

我建议这个解决方案(DEMO):

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(); 
});