HTML iframe позволяет автоматически воспроизводить аудиофайлы в сафари - PullRequest
0 голосов
/ 16 марта 2019

Это прекрасно работает с другими браузерами, но Safari автоматически загружает файл.

<iframe src="lib/audio/voice.mp3" allow="autoplay" class="audio-main" id="iframeAudio">
</iframe>   

Мне нужно проигрывать фоновое аудио на веб-сайте.К сожалению, Opera и Chrome работают нормально. Safari Browser автоматически открывает сайт для загрузки аудио. В чем проблема, спасибо за продвижение

1 Ответ

1 голос
/ 17 марта 2019

Нет автоматического воспроизведения по умолчанию, говорит человек

Согласно политике автоматического воспроизведения Safari / WebKit это дает пользователям возможность просматривать Интернет с меньшим количеством отвлекающих факторов, особенно в формеоблегчения от веб-сайтов, которые автоматически играют со звуком.Они дают указание веб-сайтам предполагать, что для любого использования видео или аудио потребуется жест пользователя или щелчок для воспроизведения.

Конфигурация политики

Пользователи могут включить функцию автоматического воспроизведения для отдельных сайтов.

Safari >> Настройки >> Веб-сайты >> Авто-воспроизведение

Возможны следующие варианты:

  • Разрешить все автоPlay
  • Stop Media with Sound (по умолчанию)
  • Never Auto-Play

Функциональность iframe разрешает автозапуск работает в Safari

Когда пользователь имеетДля автоматического воспроизведения с определенного веб-сайта тег iframe работает, как и ожидалось.

<iframe allow="autoplay" src="happy.mp3"></iframe>

Не удивительно, хотя и элемент <audio> загружается и воспроизводится самостоятельно.

<audio autoplay loop src="happy.mp3"></audio>

Обнаружение автоматического воспроизведения отключено и отображается проигрыватель

Однако следует ожидать, что эта функция не будет включена, поскольку у пользователей есть возможность отключить ее, поэтому важно определить, было ли отказано в автоматическом воспроизведении, и соответственно проактивно реагировать.

var promise = $('video')[0].play();

if (promise) promise.catch(error => {
    // Auto-play disabled show controls 
    $('audio').attr('controls', '');
});

Для этой опциинам вообще не нужно автоматическое воспроизведение, так как мы вручную вызываем воспроизведение.Конечно, это не сработает, если требуется действие пользователя, поэтому нам остается только добавить элементы управления и отобразить проигрыватель.

Аудио с элементами управления

Ради завершения,всегда есть другой вариант;избегайте автоматического воспроизведения всего вместе ... но что в этом забавного.

<audio controls src="happy.mp3"></audio>

nJoy!

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