Как исправить бесконечную загрузку встроенного видео YouTube внутри iframe? - PullRequest
4 голосов
/ 05 мая 2019

Я использую плагин videojs-youtube для воспроизведения встроенных видео на YouTube внутри моего веб-приложения.Недавно я заметил, что когда веб-приложение помещается в iframe, видео застревает при бесконечной загрузке.Консоль не показывает никаких связанных ошибок из-за этого процесса.

При попытке отладить эту проблему, я понял, что PlayerStatus (как описано в IFrame Player API) изменяется неправильно: когда видео отсутствуетВ окне iframe PlayerStatus изменяется с «незапущенного» на «буферизацию» и «воспроизведение».С другой стороны, Когда видео оборачивается в iframe, PlayerStatus снова меняется с «unstarted» на «buffering» на «unstarted» .

И есть одно странное исключение, хотя- при установке и активации расширений Chrome, таких как AdBlock или LastPass, видео воспроизводится правильно, даже если оно находится внутри iframe.

Есть идеи, почему это происходит?Спасибо:)

1 Ответ

0 голосов
/ 25 июня 2019

У меня была такая же проблема, но я думаю, что нашел решение своей проблемы после нескольких часов попыток ... Добавление allow="autoplay" в iframe исправляет это для меня, это не имеет общего смысла, так как иногда это делаетработать без добавления этого.

Для пояснения, я использую video.js и videojs-youtube.js в iframe, внутри этого iframe, если вы воспроизводите видео с Youtube, внутри iframe создается другой iframe.И я предполагаю, что нажатие на видеопроигрыватель для воспроизведения видео с YouTube не считается пользователем, взаимодействующим с внутренним iframe, потому что videojs-youtube программно указывает видео YouTube на воспроизведение в этом внутреннем iframe, а Chrome не разрешает видео внутриiframe будет воспроизводиться, если пользователь не взаимодействовал с ним.

Это не объясняет, почему в 5 процентах случаев игра работает нормально.В любом случае, добавление allow = autoplay к внешнему тегу iframe, содержащему проигрыватель videojs, позволяет мне работать в 100% случаев.

...