我有一个网站,当用户点击按钮时会播放声音。
这是我实现它的方式:
function PlaySound(soundfile) {
$('#soundContainer').html("<embed src='/uploads/sounds/" + soundfile + "' hidden=true autostart=true loop=false>");
}
如何预先加载声音文件?
谢谢。
就是我脑海中的想法,你能否发起一个 AJAX 请求来获取音频文件,但在文件加载完毕前不要显示按钮。
$(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 = new Image(); soundfile.src = /uploads/sounds/" + soundfile;
没有<embed>
这样的东西。
你可以使用一个没有autoplay
的HTML5 <audio>
元素,然后用它的play()
方法让它开始播放。