событие canplaythrough и аудио HTM5: кто-нибудь может удалить это событие? - PullRequest
3 голосов
/ 05 марта 2011

Я создал новый аудиоэлемент и могу успешно загружать, воспроизводить, приостанавливать, отключать звук и т. Д. Однако я заметил, что некоторые браузеры (FF, Opera) всегда запускают событие canplaythrough при выполнении play ().У Chrome тоже есть проблемы с этим.Но Safari ведет себя как ожидалось ... событие вызывается только один раз после того, как readyState изменяется на HAVE_ENOUGH_DATA.

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

Постоянное включение canplaythrough раздражает, потому что я не обязательно хочу запускать обработчик, прикрепленный к событию canplaythrough каждый раз, когда я играюаудио файлЯ также испытывал некоторые странные ошибки воспроизведения в Chrome всякий раз, когда canplaythrough запускается более одного раза.

Может ли кто-нибудь пролить свет на то, что происходит с canplaythrough и почему его нельзя удалить после первоначального увольнения.

Спасибо.

1 Ответ

3 голосов
/ 02 мая 2011

Мне удалось удалить событие canplaythrough в Chrome (и Safari, если я правильно помню).

Код, подобный приведенному ниже, похоже, работает для меня:

// add event
audioElem.addEventListener("canplaythrough", displayHome, false);

// later remove event before triggering play
audioElem.removeEventListener("canplaythrough", displayHome, false);

Как и вы, я заметил некоторые странные проблемы с воспроизведением, когда я не удалял событие в Chrome.

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