【发布时间】:2012-10-28 12:05:10
【问题描述】:
我在嵌入 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中描述的那样工作。
【问题讨论】:
-
我似乎也遇到了这个问题。视频在 iPad 甚至 iPhone 4 上不断加载。
-
对我来说,它实际上在 iPhone 4 上按预期工作。无法测试 iPhone 5。
-
我遇到了同样的问题。就我而言,它似乎与控件上的覆盖无关,因为我的按钮位于视频后面。视频加载,开始缓冲并停留在黑屏上。
标签: ipad youtube youtube-api