Html5 ленивый обработчик событий ‘onplay’ для аудио тега?

#javascript #jquery #html

#javascript #jquery #HTML

Вопрос:

С новым тегом Html5 audio событие onplay, похоже, запускается только при первом воспроизведении звука. В этом примере при нажатии «Play» звук запускается с всплывающим предупреждением, показывающим «Воспроизведение». Когда звук завершен и снова нажата кнопка «Play», звук снова запускается, но предупреждение не запускается. Я что-то здесь упускаю? Должен ли я каким-то образом сбросить звук?

 <a href="#" onclick="$('#audio')[0].play();">Play</a>

<audio preload="none" id="audio" onplay="alert('playing');"><source type="audio/wav" src="..."></source></audio>
  

Я также пробовал привязку к событию воспроизведения с помощью jQuery, но получаю те же результаты.

 <a href="#" onclick="$('#audio')[0].play(); return false;">Play</a>

<audio preload="none" id="audio"><source type="audio/wav" src="..."></source></audio>

<script type="text/javascript">

    $(document).ready(function () {

        $('#audio')[0].bind('play', function () {

            alert("Playing");

        });

    });    

</script>
  

Ответ №1:

onplay запускается, когда носитель готов к запуску,

Элемент больше не приостановлен. Запускается после возврата метода play () или когда атрибут автозапуска вызвал начало воспроизведения.

взято из спецификации

Вы могли бы попробовать

 <input type="button" value="Play" id="play_pause" onclick="audio.play()">
  

и затем

 var play_pause = document.getElementById('play_pause');
video.onpause = function(e) {
  play_pause.value = 'Play';
  play_pause.onclick = function(e) { video.play(); }
}
video.onplay = function(e) {
  play_pause.value = 'Pause';
  play_pause.onclick = function(e) { video.pause(); }
}
  

Источник

Комментарии:

1. Хорошо, я буду.. Да, я ищу событие onplaying или привязку к событию ‘playing’ в jQuery. Спасибо, Мансуро!