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