Есть ли способ узнать, когда звук перестает играть в Javascript? - PullRequest
3 голосов
/ 02 апреля 2012

Я создаю игру. Уровни относительно короткие, и в начале каждого из них игрок слышит повествование (звук, который длится x секунд). Может случиться так, что кто-то пройдет уровень до того, как закончится звук, и новый уровень начнет воспроизводить свой собственный звук поверх звука предыдущего. Я хочу, чтобы звуки стояли в очереди, и для этого мне нужно знать, когда звук перестал воспроизводиться. Есть ли событие для этого?

Ответы [ 4 ]

7 голосов
/ 02 апреля 2012
var mySound = new Audio('mySoundFile.ogg'); 
mySound.addEventListener('ended', function() {
    alert("Finished playing sound");
}, false);
mySound.play();

Другие события см. http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#mediaevents

1 голос
/ 02 апреля 2012

Вы можете найти эту ссылку полезной.В нем приведен пример воспроизведения нескольких звуков, который показывает способ отслеживания того, завершен ли файл.

По сути, получите свойство duration аудио и отметьте, когда он начнет воспроизводиться.Если текущее время позже, чем время начала + продолжительность, это сделано.

0 голосов
/ 02 апреля 2012

Если вы используете элемент HTML5 <audio>, он запускает событие ended при достижении конца аудиофайла.

0 голосов
/ 02 апреля 2012

Вы можете воспроизводить звук с помощью SWF-плеера (http://flash -mp3-player.net), у него есть функция обратного вызова, которая уведомит вас о завершении.

Преимущество этого подхода в том, что он будет работать и в браузерах HTML 4.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...