13

我有一个网站,当您单击按钮时会播放声音。

我就是这样做的

function PlaySound(soundfile) {
    $('#soundContainer').html("<embed src='/uploads/sounds/" + soundfile + "' hidden=true autostart=true loop=false>");
}

你如何预先加载声音文件?

谢谢你。

4

5 回答 5

17

只是在我的脑海中思考,你能不能对声音文件发出 ajax 请求,但在文件 100% 加载之前不显示按钮。

$(document).ready(function() {
    $.ajax({
        url: "soundfile.mp3",
        success: function() {
            $("#play_button").show();
        }
    });
});
于 2010-05-04T05:54:54.090 回答
5

在 HTML5 中这样做:

my_sound = $("<audio>", {src:"filename.mp3",preload:"auto"}).appendTo("body");

然后播放它:

my_sound[0].play();
于 2015-09-02T03:07:27.783 回答
2

使用 JavaScript 播放声音有很多更好的方法。对于我最喜欢的,请查看SoundManager。有了它,您可以简单地调用soundManager.load抢先加载声音文件。

于 2010-05-04T04:59:17.167 回答
0
  1. 向它发出 AJAX 请求。如果您的服务器发出正确的缓存标头(例如Expires),它将存储在浏览器缓存中。

  2. 丑陋的方式:

声音文件 = 新图像();
soundfile.src = /uploads/sounds/" + 声音文件;
于 2010-05-04T04:58:33.310 回答
0

没有这样的事情<embed>

你可以使用没有 的HTML5<audio>元素autoplay,然后让它开始使用它的play()方法。

于 2010-05-04T04:58:53.047 回答