Подтвердить что ты не робот

Force iOS iPhone youtube встроить плеер из полноэкранного режима

Я создаю сайт, на котором пользователь смотрит видео, и отвечает на вопросы. Однако у меня есть одна проблема. Когда пользователь просматривает видео с YouTube на iPhone, он запускается в проигрывателе iOS, а не в проигрывателе YouTube. Когда я пытаюсь вывести игрока из полноэкранного режима, вместо этого он приостанавливает видео и просто сидит там. Я использую этот код:

if (
    document.fullscreenElement ||
    document.webkitFullscreenElement ||
    document.mozFullScreenElement ||
    document.msFullscreenElement
) {
    // exit full-screen
    if (document.exitFullscreen) {
        document.exitFullscreen();
    } else if (document.webkitExitFullscreen) {
        document.webkitExitFullscreen();
    } else if (document.mozCancelFullScreen) {
        document.mozCancelFullScreen();
    } else if (document.msExitFullscreen) {
        document.msExitFullscreen();
    }
}

Это работает во всем, ЗА ИСКЛЮЧЕНИЕМ iOS-плеера iOS. Я тоже пытался скрывать игрока, но это тоже не работает. Есть ли способ вывести игрока из полноэкранного режима или какого-то обходного пути? Спасибо!

ПРИМЕЧАНИЕ. Я использую Youtube iframe API. https://developers.google.com/youtube/iframe_api_reference?hl=en

4b9b3361

Ответ 1

На видео Iphone воспроизводится собственный видеопроигрыватель Apple. Этот игрок не является элементом html5 как игрок YouTubes. Следовательно, в Iphone нет элемента в полноэкранном режиме.

Это не так, например, Ipad, где игрок YouTubes проигрывает, позволяя полноэкранный режим.

Вкратце: я совершенно уверен, что вы не можете этого сделать. (К счастью, ошибочно)

Ответ 2

В качестве обходного пути я использую следующий код:

Когда вы хотите выйти из iPhone-плеера:

player.seekTo(2000, true);

Это приведет к тому, что плеер перейдет в конец видео и закроет полноэкранный проигрыватель.

Ответ 3

Это невозможно. Либо вы перейдете в приложение YouTube, либо используете плеер по умолчанию для iOS.

Ответ 4

Если вы все еще находитесь в своих мобильных браузерах, вы можете попробовать следующее:

Внутри youtube api есть

YouTube.PlayerState.ENDED

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

Существует уловка, видео не будет продолжаться после события Playerstate.ENDED. Но тогда вы всегда можете переместить время, в которое видео остановилось, и воспроизвести его снова.

function takePlayerOutFullscreen(event) {

     if (event.data == YT.PlayerState.ENDED) {
         alert("video ended");

     }
     else if (event.data == YT.PlayerState.PAUSED) {
          alert("video paused");
     }
 }

(Отмечено: если ваш мобильный браузер переводит вас непосредственно в приложение YouTube, когда воспроизводится видео, вы ничего не можете сделать, чтобы переключить/закрыть собственное приложение YouTube и вернуться в веб-браузер. Чтобы предотвратить использование мобильного браузера вы можете перейти непосредственно к родному приложению. Вы можете перейти к настройкам своего телефона и изменить приложение запуска по умолчанию.)

Надеюсь, что это поможет.