由于某种原因,我的函数中的setTimeOut变量不起作用。我尝试了几种不同的策略,但都没有奏效。基本上,我试图设置音频播放之前的延迟。以下是我的JS和HTML代码。

function song(musicfile) {
  $('#result').html("<audio autoplay=\"true\"><source src=" + musicfile + " type=\"audio/mpeg\" /></audio>");
  setTimeout(song, 10000);
}

<img class="playbutton1 center-block" src="play.png" onclick="song('pretender.m4a');">

最佳答案

当然没有延迟。有人单击图像,您立即注入(inject)<audio>元素,然后设置延迟。

您需要的是setTimeout(function_that_injects_the_element, 10000)

function song(musicfile) {
  setTimeout(function() {
    $('#result').html("<audio autoplay=\"true\"><source src=" + musicfile + " type=\"audio/mpeg\" /></audio>");
  }, 10000);
}

我可能还建议删除所有现有的音频元素,或者如果可能的话至少停止它们。

10-06 00:06
查看更多