如何在<audio>标记中监听“ onLoad”事件?

时间:2019-02-08 15:51:39

标签: javascript frontend onload

当元素在文档中完全呈现时,我添加了<script>标记并使用script.onload = callback来运行回调。 我如何使用<audio>标签做同样的事情? 我已经尝试过onload,但是它不起作用。 我已经尝试过“ oncanplay”,“ oncanplaythrough”,“ onloadeddata”。

谢谢

3 个答案:

答案 0 :(得分:0)

对于媒体标签,有几个事件可以在这里找到[https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Media_events]

您可以在媒体完成加载后使用onloadeddata运行某些内容

您还可以尝试oncanplayoncanplaythrough,具体取决于您是希望缓存还是加载一小部分,还是要加载整个媒体

<audio oncanplaythrough="printAudioReady()" src="..." /> <span id="holder"></span>

在JS中

function printAudioReady() {
  document.querySelector('#holder').innerText="Audio loaded";
}

答案 1 :(得分:0)

编辑了答案。 new Audio()当前仅在Firefox中可用。

const audio = document.getElementById('myAudio')
audio.onloadeddata = function(data) {
    console.log(data);
};
audio.src = "https://sample-videos.com/audio/mp3/crowd-cheering.mp3"
<audio id="myAudio"></audio>

答案 2 :(得分:0)

添加一个canplay media event侦听器:

mediaFile = new Audio('/path/to/media.mp3')
mediaFile.addEventListener('canplay', function() { console.log('Ready to play') })