我在预加载 HTML5 音频内容然后使用缓存中的内容而不是每次尝试重播音频时都尝试重新下载音频时遇到问题。
http://cs.sandbox.millennialmedia.com/~tkirchner/rich/K/kungFuPanda2_tj/
体验应该是当有人点击横幅时,它会弹出一个带有加载栏的广告。加载栏正在加载动画所需的所有图像。与此同时,音频也通过 DOM 中已经存在的音频标签加载(这很好)。加载完所有图像后,加载栏消失,用户可以继续。屏幕底部有 4 个按钮可供他们单击。单击其中一个播放音频文件,图像会播放与音频同步的翻书式动画。
音频标签:
<audio id="mmviperTrack" src='tigress.mp3'></audio>
<audio id="mmmantisTrack" src='viper.mp3'></audio>
<audio id="mmtigressTrack" src='kungfu3.mp3'></audio>
<audio id="mmcraneTrack" src='crane.wav'></audio>
播放按钮事件监听器:
button.addEventListener('click',function(){
if ( f.playing ) return false;
f.playing = true;
button.audio.play();
},false);
button.audio.addEventListener('playing', function(){
animate();
}, false);
问题是,在 javascript 中,每次我单击 play() 时,它都会重新加载音频文件然后播放它。我似乎无法让它在开始时加载一次音频并关闭存储在内存中的内容,而不是每次单击按钮时都尝试重新加载音频。
我尝试过使用 preload 和 autobuffer 属性,但似乎移动 safari 忽略了这些属性,因为无论我如何设置它们,行为总是相同的。我尝试过使用源标签和不同的文件格式……什么都没有。
有任何想法吗?