预加载音频文件
Posted
技术标签:
【中文标题】预加载音频文件【英文标题】:preloading audio files 【发布时间】:2011-11-16 06:36:35 【问题描述】:我想在我的网站中。我在 html 页面中使用以下代码。
<embed src="cheer.swf" hidden="true" autostart=false style="height:0px; width:0px">
<embed src="click.swf" hidden="true" autostart=false style="height:0px; width:0px">
<embed src="doowip.swf" hidden="true" autostart=false style="height:0px; width:0px">
但是所有的音频文件仍然在页面的开头播放。如何停止音频文件的自动播放。
另外,如何为 ipad safari 预加载文件?
<audio id="genclick" src="click.wav" type="audio/wav" >
<audio src="doowip.wav" type="audio/wav" >
<audio src="cheer.wav" type="audio/wav" >
在我从 javascript 播放之前,上面的代码不会加载文件..
document.getElementById("genclick").play();
我哪里错了??
【问题讨论】:
【参考方案1】:根据http://kb2.adobe.com/cps/127/tn_12701.html,您正在寻找的参数名称(对于 swf 的“嵌入”标签)是“播放”,而不是“自动启动”。因此,将它们更改为:
<embed src="cheer.swf" hidden="true" play="false" style="height:0px; width:0px" />
您也可以将它们放在object 标签中,然后使用:
<param name="play" value="false" />
我自己对此进行了测试,它确实有效。至于 iPad Safari 的标签,HTML5 音频标签有一个名为“preload”的属性,当设置为“auto”时,它应该根据需要预加载文件。试试:
<audio src="doowip.wav" type="audio/wav" preload="auto" />
我希望这会有所帮助。
【讨论】:
感谢您的回答。请阅读上述对 TeaTang 回答的评论。如何将音频文件存储在 ipad safari 缓存中,以便快速流畅地播放?? 您正在测试的 iPad 是否使用 3g 连接而不是 WiFi?因为根据this 文档,ios Safari 在使用蜂窝网络时会禁用 autoplay 和 preload 属性......在这种情况下,在那种情况下,你看起来像这里真的受苹果的摆布。 我正在使用 WiFi 连接!!【参考方案2】:虽然还没有检查,但是您可以通过以下方式预加载文件吗:
【讨论】:
有什么区别??我没有发现任何变化,它们仍然是自动播放的【参考方案3】:对于 HTML5 音频标签,自动播放是一个布尔值:
<audio controls="controls" autoplay="autoplay">
<source src="song.ogg" type="audio/ogg" />
<source src="song.mp3" type="audio/mpeg" />
Your browser does not support the audio element.
</audio>
对于 swf 文件,您应该检查每个文件中的自动播放属性是否设置为硬编码。
【讨论】:
我不想自动播放音频,我希望它们被预加载和缓存.. 这样我就可以在我想要的时候播放它们。但是我观察到的是,ipad safari 每次 document.getElementById("genclick").play(); 时都会下载音频文件的新副本。在同一页面中执行。以上是关于预加载音频文件的主要内容,如果未能解决你的问题,请参考以下文章