加载图像后无法加载音频

时间:2019-02-25 15:38:29

标签: javascript html5-audio dom-events

加载图像后未加载音频文件(Javascript控制台未显示“已加载音频”):

//Audio object :
var audio = new Audio("foo.mp3");

//Image :
var img = new Image();
img.src = "foo.png";

//Loading image :
img.onload = function()
{
    console.log("Image loaded");    

    //Loading audio file :
    audio.onloadeddata = function()
    {
        console.log("Audio loaded");
    };
};

那么为什么此代码不起作用?

1 个答案:

答案 0 :(得分:0)

您正在将音频侦听器附加到img.onload中。这意味着只有先加载图像,然后音频完成,您才可以获取console.log。解决方案:将audio.onloadeddata移出img.onload。

编辑:从您的评论中可以很明显地看出,您想先加载图像。但是这一行:

var audio = new Audio("foo.mp3");

已经开始加载音频。

您想要的是在加载图像时加载它,因此,请执行以下操作:

// Image :
var img = new Image();
img.src = "foo.png"; // starts loading image

// When image loading is done:
img.onload = function()
{
    console.log("Image loaded");    
    // Audio object :
    var audio = new Audio("foo.mp3"); // starts loading audio
    // When loading is done:
    audio.onloadeddata = function()
    {
        console.log("Audio loaded");
    };
};