YouTube嵌入iPad:通过Javascript API启动时永远缓存

我在使用YouTube嵌入式工作时遇到了一些问题.

我正在使用YouTube API加载视频.在加载的视频之上,我有一个自定义控件< div> (透明的)只有一个播放按钮(< img>).这样做是为了隐藏默认的YouTube播放器,该播放按钮与网站上的其他设计一致.

< div>覆盖整个加载的iFrame,因此播放器本身不可点击 – 我在< div>上使用点击事件改为开始视频:

// Inside onYouTubePlayerAPIReady():
var player = new YT.Player(playerId, {
  height: height,
  width: '100%',
  videoId: videoId,
  playerVars: {
    html5: '1',
    controls: '0',
    rel: '0',
    showinfo: '0',
    modestbranding: '1',
    theme: 'light',
    color: 'white',
    wmode: 'transparent',
    suggestedQuality: "large"
  }
});

$(".youtube-player-controls").bind("click", function(e){
  if (!player || !player.getPlayerState) return false;
  if (player.getPlayerState() == YT.PlayerState.PLAYING) player.pauseVideo();
  else player.playVideo();
  return false;
});

在iPhone上运行良好,但在iPad(以及Android似乎)上,视频切换到视频的第一帧,但随后停在缓冲状态(通过player.getPlayerState()检查).

我尝试使用player.loadVideoById()启动视频,这也不起作用(相同的错误).

如果我删除重叠控件< div>从而允许用户实际点击它工作正常的视频.

有关如何使用Javascript API播放视频的任何建议?

编辑:

我稍微更改了嵌入代码,即我添加了html5 = 1,如Force HTML5 youtube video所述.这会更改嵌入式iFrame的内容以使用HTML5播放器,但不能解决问题.

我试着看看它是否能像http://developer.apple.com/library/safari/#documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/Device-SpecificConsiderations/Device-SpecificConsiderations.html中所描述的那样工作.

Apple不允许通过iOS上的脚本加载标签(以防止在移动网络上使用不必要的带宽). Android的几个版本显示相同的行为.

您必须首先通过单击视频本身让用户启动视频 – 之后您将能够通过API在桌面设备上控制视频.

相关文章
相关标签/搜索