2012-02-22 48 views
0
<audio id="playmysong" src="/media/click.wav" /> 
<input type="button" onclick="playMe();"/> 
<script type="text/javascript"> 
    function playMe(){ 
     var obj = $("playmysong"); 
     obj.play(); 
    } 
</script> 

此代码在我第一次点击时有效。此代码仍然有效,如果我等待大约4-5秒后再点击一下,再点击一次,就可以再次点击。但是当我先点击并在1秒内再次点击后,它就不会播放声音。此代码适用于Google Chrome浏览器仅适用于Firefox的问题。HTML5的音频标签在Firefox中并不一致工作

回答

0

如果您正在使用jQuery: 变化

var obj = $("playmysong"); 

var obj = $("#playmysong").get(0); 

进一步说,尝试使用play()和暂停():

function audioToggle(){ 
    var obj = $("#playmysong").get(0); 
    if(obj.paused) obj.play() else obj.pause(); 
} 
+0

我正在使用原型。但是这并不能解决我的问题。当我把分手和跟踪JavaScript代码使用萤火虫。每次它都会发出声音。所以我不知道可能是什么问题,它在正常情况下无法正常工作。 – PRP 2012-02-22 19:49:57

+0

@PRP如果您可以将代码放在网络某处,我可以帮助您进一步了解这一点。 – jonycheung 2012-02-22 21:09:42

+0

我稍微改变了这段代码,现在我改变了 var obj = $(“playmysong”); into var obj = $(“playmysong”)。cloneNode(true); 这解决了我的问题。但我不确定这是否正确。 在我的代码上提供一些细节

0

一旦我使它对我工作的DOM对象克隆

var obj = $("playmysong").cloneNode(true); 

现在工作在两个FF和Chrome

0

<!DOCTYPE html>

<html> 
    <head> 
<style> 

</head> 
    <body> 
<audio id="audio_with_controls" controls autobuffer > 
    <source src="http://www.wav-sounds.com/various/beep.wav" type="audio/wav" /> 
     Audio tag not supported 
</audio> 
<!-- some actions from Javascript --> 
<button id="play">Play</button> 
<button id="play2">Play2</button> 
<button id="pause">Pause</button> 
<button id="duration">Show duration</button> 
<div id="duration-log"></div> 
<script> 
    var song = document.getElementById('audio_with_controls'); 
    document.getElementById('play').addEventListener('click', function() { song.play(); }, false); 
    document.getElementById('play2').addEventListener('click', function() { song.play(); }, false); 
    document.getElementById('pause').addEventListener('click', function() { song.pause(); }, false); 
    document.getElementById('duration').addEventListener('click', function() { document.querySelector('#duration-log').textContent = song.duration; }, false); 
</script> 

精细你可以看到这个代码,并在浏览器中运行。你可以看到它与FF和Chrome的区别。特别是当声音播放完成时,请看滑块。在FF中卡住,几秒钟后结束。这是我在我的应用程序中遇到的问题。