我有一个网站,当您单击按钮时会播放声音。
我就是这样做的
function PlaySound(soundfile) {
$('#soundContainer').html("<embed src='/uploads/sounds/" + soundfile + "' hidden=true autostart=true loop=false>");
}
你如何预先加载声音文件?
谢谢你。
只是在我的脑海中思考,你能不能对声音文件发出 ajax 请求,但在文件 100% 加载之前不显示按钮。
$(document).ready(function() {
$.ajax({
url: "soundfile.mp3",
success: function() {
$("#play_button").show();
}
});
});
在 HTML5 中这样做:
my_sound = $("<audio>", {src:"filename.mp3",preload:"auto"}).appendTo("body");
然后播放它:
my_sound[0].play();
使用 JavaScript 播放声音有很多更好的方法。对于我最喜欢的,请查看SoundManager。有了它,您可以简单地调用soundManager.load
抢先加载声音文件。
向它发出 AJAX 请求。如果您的服务器发出正确的缓存标头(例如Expires),它将存储在浏览器缓存中。
丑陋的方式:
声音文件 = 新图像(); soundfile.src = /uploads/sounds/" + 声音文件;
没有这样的事情<embed>
。
你可以使用没有 的HTML5<audio>
元素autoplay
,然后让它开始使用它的play()
方法。