2011-10-05 33 views
5

使用新的Html5音頻標籤,onplay事件似乎只在第一次播放音頻時觸發。在這個例子中,當點擊「播放」時,音頻開始顯示「正在播放」。當音頻結束並再次單擊「播放」時,音頻會再次啓動,但不會觸發警報。我在這裏錯過了什麼嗎?我是否必須以某種方式重置音頻?Html5音頻標籤的懶惰'onplay'事件處理程序?

<a href="#" onclick="$('#audio')[0].play();">Play</a> 

<audio preload="none" id="audio" onplay="alert('playing');"><source type="audio/wav" src="..."></source></audio> 

我也嘗試綁定到jQuery的play事件,但我得到了相同的結果。當媒體準備開始運行

<a href="#" onclick="$('#audio')[0].play(); return false;">Play</a> 

<audio preload="none" id="audio"><source type="audio/wav" src="..."></source></audio> 

<script type="text/javascript"> 

    $(document).ready(function() { 

     $('#audio')[0].bind('play', function() { 

      alert("Playing"); 

     }); 

    });  

</script> 

回答

7

onplay運行,

元素不再暫停。 play()方法返回 後,或自動播放屬性導致播放開始時觸發。

spec

採取你可以嘗試

<input type="button" value="Play" id="play_pause" onclick="audio.play()"> 

然後

var play_pause = document.getElementById('play_pause'); 
video.onpause = function(e) { 
    play_pause.value = 'Play'; 
    play_pause.onclick = function(e) { video.play(); } 
} 
video.onplay = function(e) { 
    play_pause.value = 'Pause'; 
    play_pause.onclick = function(e) { video.pause(); } 
} 

source

+1

嗯,我會..是的,我期待用於展示事件或綁定到jQuery中的'玩'事件。謝謝Mansuro! – Levitikon