OSX Safari (9.1.1) Аудио объект «приостановлен» флаг постоянно true

#safari #html5-video #html5-audio

#safari #html5-video #html5-аудио

Вопрос:

Используя OSX Safari 9.1.1, я получаю проблему, как описано в названии: paused свойство всегда верно, даже когда воспроизводится звук.

Я создаю аудио объект следующим образом

 this.audio = new Audio();
this.audio.autoplay = false;
this.audio.preload = 'metadata';
this.audio.src = 'https://example.com/audio.mp3';
this.audio.load();
  

И я протестировал это следующим образом:

 console.debug(`Before play: ${this.audio.paused}`);
this.audio.play();
console.debug(`After play: ${this.audio.paused}`);
  

paused Свойство всегда будет иметь значение true. Даже когда я вызвал play() .

Есть идеи?

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

1.всегда нравится, даже если вы вызываете audio.paused в консоли через некоторое время? в последних версиях whatwg HTMLMediaElement.play() возвращает обещание (не в w3c), что делает его асинхронным вызовом, хотя я не знаю о последней версии Safari. developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/play

2. Да, возвращается true даже во время фактического воспроизведения.

3. О, на самом деле 9.1.1 не является последним. Я не могу воспроизвести версию 9.1.3 (последняя версия для macos 10.9), а последняя версия — 10.0. (доступна только в macos10 ) Поэтому попробуйте обновить свой браузер:-P

4. Хм, хорошо, как разработчик, это звучит не очень утешительно. Тот факт, что веб-сайт не работает при установке OSX по умолчанию. Я также не могу обновить Safari. Я использую OSX El Capitan, и он не показывает, что какие-либо обновления доступны для Safari.

5. Да, было обновление ОС, и оно работает в Safari 10. Я предполагаю, что это ошибка Safari 9.1.1.

Ответ №1:

Оказалось ошибкой Safari 9.1.1.