Класс `vp-preview-invisible` добавлен в эскиз предварительного просмотра в Safari, но не в Chrome во встроенном видео vimeo - PullRequest
0 голосов
/ 09 апреля 2019

Я встраиваю видео на свою страницу с помощью проигрывателя Vimeo.

По некоторым причинам миниатюра видео имеет класс vp-preview-invisible в Safari (что делает миниатюру невидимой), но класс отсутствует в Chrome (что делает миниатюру видимой).

Chrome

enter image description here

<div class="vp-preview vp-preview-cover" ... </div>

Safari

enter image description here

<div class="vp-preview vp-preview-cover vp-preview-invisible" ... </div>

Вот идентификатор видео, о котором я говорю: 326869440 .

Мне нужно, чтобы эскиз был виден как в Chrome, так и в Safari.

Я использую Version 12.0.1 (13606.2.104.1.2) для Safari.

Как я мог это исправить?

Спасибо.

1 Ответ

2 голосов
/ 08 мая 2019

@ YaroslavTrofimov В соответствии с сайтом, на который вы ссылались, я увидел, что вы используете это для встраивания плеера https://player.vimeo.com/video/326869440?autoplay=1&loop=1&title=0&byline=0&portrait=0.

Я вижу проблему. Это использование autoplay=1 param. Автозапуск имеет много правил в зависимости от браузера, некоторые браузеры обрабатывают его лучше, а некоторые - хуже. По сути, все браузеры в настоящее время пытаются заблокировать автозапуск UNMUTED. (Это потому, что пользователи ненавидели, когда открывали сайт, и звук начинал воспроизводиться из ниоткуда.) Тем не менее, они позволят вашему видео автоматически воспроизводиться, если оно отключено. Поэтому, когда вы добавите muted=1, это будет работать. Однако у этого видео есть важный аудиоконтент, поэтому вы не хотите этого делать.

Так в чем же проблема? Когда вы используете autoplay=1, игрок Vimeo пытается воспроизвести его. Тем не менее, браузер будет прерывать и приостанавливать его на несколько минут позже (поскольку он не позволяет автоматически воспроизводить звук и не регистрирует пользователя, нажимающего кнопку воспроизведения). Когда игрок Vimeo пытается играть, мы всегда скрываем миниатюру. Тот факт, что он был приостановлен браузером вместо нажатия пользователем паузы, не имеет значения и неизвестен игроку. Точно так же, когда вы нажимаете кнопку воспроизведения, а затем нажимаете кнопку паузы, мы больше не показываем миниатюру. Это то, что происходит.

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

Наконец, как вы можете это исправить? Ну, это сложная вещь. Самое простое решение - избавиться от параметра autoplay=1. Если вы хотите, чтобы он воспроизводился автоматически, когда это возможно (некоторые браузеры в некоторых случаях более снисходительны), то вам не повезло в Safari.

Надеюсь, это ответит на ваш вопрос.

...