2014-03-05 84 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(); 
});