强制iOS iPhone youtube嵌入播放器退出全屏



我正在创建一个网站,用户可以在该网站上观看视频并回答问题。然而,我有一个问题。当用户在iPhone上观看YouTube嵌入的视频时,它会在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 iPhone播放器之外的所有设备。我也试过把球员藏起来,但也没用。有没有办法让玩家退出全屏,或者某种变通方法?非常感谢。

注:我正在使用Youtube iframe API。https://developers.google.com/youtube/iframe_api_reference?hl=en

我使用以下代码作为解决方法:

当你想退出iPhone播放器时:

player.seekTo(2000, true);

这将使播放器转到视频的末尾并关闭全屏播放器。

在Iphone上,视频在苹果自己的视频播放器中播放。这个玩家不像YouTubes玩家那样是一个html5元素。因此,在Iphone上没有全屏元素。

例如,Ipad上的情况并非如此,YouTubes自己的玩家会加入,从而启用全屏模式。

简言之:我确信你做不到。(令人高兴地证明是错误的)

这是不可能的。要么你让它切换到YouTube应用程序,要么你在应用程序内部使用iOS默认播放器。

如果您仍在移动浏览器中,您可以尝试以下操作:

在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应用程序,则您无法切换/关闭本机youttube应用程序并返回web浏览器。为了防止移动浏览器将您直接引导到本机应用程序。您可以转到手机设置并更改默认启动应用程序。)

希望能有所帮助。

相关内容

  • 没有找到相关文章

最新更新