2013-05-06 32 views
0

我目前使用下面的方式在我的网站上播放音效。我需要的声音播放出来,每次我从我的奴隶设备接收的协议:在html中预加载我的音频文件

<script> 
function RxProtocol() 
{ 
    playSound('audio123.wav'); 
} 

function playSound(soundfile) 
{ 
    document.getElementById("dummy").innerHTML= 
    "<embed src=\""+soundfile+"\" hidden=\"true\" autostart=\"true\" loop=\"false\" />"; 
} 
</script> 

<body> 
<span id="dummy"></span> 
</body> 

但是好像这种方式播放的音频延迟每次。我收到我的协议2秒后,只播放音频。

是因为我没有预加载音频吗?你们可以教我如何修改我的代码并使其进入预加载启用状态吗?

+0

我不认为你可以预载音频文件。什么是调用'RxProtocol()'的代码?也许延迟就在那里。 – 2013-05-06 07:52:03

+0

是吗?但我从网上搜索,我发现有一个预加载属性http://www.w3schools.com/tags/att_audio_preload.asp。但我不知道如何使用它...... – Coolguy 2013-05-06 07:58:16

+0

这是HTML5的一部分,假定您需要适用于旧版浏览器的代码。 – 2013-05-06 08:16:15

回答

0

不知怎的,我下面的编码工作了Firefox和Chrome,但不是IE9:

<script> 
function RxProtocol() 
{ 
    var a = document.getElementById("audio1"); 
    a.play(); 
} 

</script> 

<body> 
<audio id="audio1"> 
<source src="audio.wav" type="audio/wav"> 
<source src="audio.mp3" type="audio/mpeg"> 
audio tag not supported. 
</audio> 
</body> 

尝试并尝试后,我发现我为了让IE9能够正常工作,需要放置下面的内容。 Firefox和Chrome工作太:

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 

在此之前,我把下面的编码,该编码的Firefox和Chrome的唯一工作:

<meta http-equiv="Pragma" content="no-cache"/> 

。你们知道什么是这两个元的区别?