it-swarm.com.ru

Почему нельзя использовать аудиофайлы JavaScript .play () в iPhone Safari?

У меня работает веб-приложение JavaScript, которое периодически воспроизводит некоторые аудио, например:

var SOUND_SUCCESS = new Audio('success.mp3');
SOUND_SUCCESS.play();

Это прекрасно работает в настольных браузерах (протестировано в Edge и Chrome), но не работает в Safari на iPhone.

Я посмотрел вокруг Stack Overflow и нашел несколько ответов пару лет назад, что невозможно воспроизводить звук из Safari, если вы не используете полноэкранный проигрыватель. Это все еще так?

17
Leon Overweel

iOs отключает автовоспроизведение, вместо этого требуется, чтобы воспроизведение было инициировано как часть взаимодействия с пользователем (например, вы можете начать воспроизведение в прослушивателе с сенсорным запуском). Есть немного документации по этому вопросу на документация разработчика Apple . Есть также эта статья Преодоление аудио-ограничений iOS HTML5 на сайте разработчиков IBM, где есть примеры и более подробная информация.

20
Ed Ballot

IOS на мобильном телефоне отключает автоматическое воспроизведение звука по умолчанию. Так что обойти эту проблему. Вы можете поместить кнопку включения/выключения где-нибудь на странице и воспроизвести некоторый звук с помощью аудиоэлемента (" audioElement "), если пользователь нажмет кнопку переключения. 

После этого тот же самый " audioElement " может использоваться для воспроизведения будущих звуков путем изменения его атрибута " src " и вызова его метода " play () " без какого-либо дальнейшего взаимодействия с пользователем.

0
xingliang cai