У меня есть объект <audio>, который может потребоваться загрузить, прежде чем он сможет воспроизводиться. Есть ли способ вызвать функцию, когда звук начинается после загрузки или когда пользователь нажимает кнопку воспроизведения?
<audio>
Вы можете просто добавить evenListner следующим образом:
<audio|video onplay="myScript">
например. Вы можете сделать так:
var aud = document.getElementById("myAudio"); aud.onplay = function() { alert("The audio has started to play"); };
с аудиообъектом javascript вы можете добавить слушателя событий, например:
var horn = new Audio('car_horn.wav'); horn.addEventListener('loadeddata', () => { let duration = horn.duration; // The duration variable now holds the duration (in seconds) of the audio clip })
как вы видите здесь: https://developer.mozilla.org/en-US/docs/Web/API/HTMLAudioElement
Есть событие playing, которое вы можете слушать так же.
playing
audio.addEventListener("playing", function() { console.log("playing"); });
http://w3c.github.io/html/semantics-embedded-content.html#eventdef-media-playing
Да, есть событие onplay для аудио и видео, для этого нужно использовать тег <audio>
onplay
var audio = document.getElementById("Your_audio"); audio.onplay = function() { //your code };