Iphone 上的 YouTube Iframe API 没有全屏

YouTube Iframe API on Iphone without fullscreen

我有一个网络应用程序,它使用 YouTube Iframe API 将歌词和和弦与 YouTube 歌曲同步。嵌入式视频在没有全屏的情况下在线播放对我们来说至关重要。否则用户在页面上看不到歌词和和弦,应用程序将毫无意义。

这里是 demo.

我们 50% 的流量来自 iphones,但是 iphones 始终全屏播放 YouTube 视频。

这是嵌入视频的代码

var player;

function onYouTubeIframeAPIReady() {
  player = new YT.Player('player', {
    height: '390',
    width: '640',
    videoId: $("#ytid").attr("value"),
    playerVars: {'theme':'light','color':'white','modestbranding':1,'rel':0},
    events: {
      'onReady': onPlayerReady,
      'onStateChange': onPlayerStateChange
    }
  });

在网络上寻找解决方案,我们尝试了一些修复,但 none 对 iphone 有效。如果我们认为可行,我们也准备开发 Swift 应用程序。然而网络搜索也给出了相反的建议。

  1. 是否有可靠的解决方法来内联播放 YouTube Iframe API 视频?
  2. 我们可以通过开发本机 IOS 应用程序来解决我们的问题吗?

一般来说:不,iPhone 上的 Safari 将始终全屏播放视频

iPad支持内联视频播放。

如果您有自己的 iOS 应用程序,显然您可以更好地控制视频播放。查看您的网站,拥有一个应用程序肯定可以让您更好地控制自动滚动等,因为它确实打开了整个世界的能力(和复杂性!)。

将参数 'playsinline':'1' 添加到 playerVars 对我有用。我不知道这是否也适用于网络,我正在使用 React Native 应用程序中的 WebView。

var player;

function onYouTubeIframeAPIReady() {
    player = new YT.Player('player', {
    height: '390',
    width: '640',
    videoId: $("#ytid").attr("value"),
    playerVars: {'playsinline':'1', 'theme':'light','color':'white','modestbranding':1,'rel':0},
    events: {
        'onReady': onPlayerReady,
        'onStateChange': onPlayerStateChange
    }
});