简体   繁体   English

如何监听“onLoad”事件<audio>标签?

[英]How to listen "onLoad" event in <audio> tags?

I've added a <script> tag and used script.onload = callback to run a callback when the element is completly renderized in document.我添加了一个<script>标记并使用script.onload = callback在元素在文档中完全呈现时运行回调。 How can i do the same thing with <audio> tags?我怎样才能用<audio>标签做同样的事情? I already try onload, but it don't works.我已经尝试过 onload,但它不起作用。 I already try "oncanplay", "oncanplaythrough", "onloadeddata" too.我已经尝试过“oncanplay”、“oncanplaythrough”、“onloadeddata”。

Thanks谢谢

For media tags there are several events as can be found here [ https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Media_events ]对于媒体标签,可以在此处找到多个事件 [ https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Media_events ]

You could use onloadeddata to run something after the media has completed loading您可以在媒体完成加载后使用onloadeddata运行某些内容

you could also try oncanplay or oncanplaythrough depending on whether you want a small part to buffer and load or the entire media to be loaded您还可以尝试oncanplayoncanplaythrough取决于您是要缓冲和加载一小部分还是要加载整个媒体

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

in JS在JS中

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

Edited the answer.编辑了答案。 new Audio() works only in Firefox currently. 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>

Add a canplay media event listener:添加一个canplay 媒体事件监听器:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM