我注意到官方的Fancybox youtube实现JSfiddle不适用于iOs,任何想法为什么?
http://jsfiddle.net/M78zz/show/
// Fires whenever a player has finished loading
function onPlayerReady(event) {
event.target.playVideo();
}
// Fires when the player's state changes.
function onPlayerStateChange(event) {
// Go to the next video after the current one is finished playing
if (event.data === 0) {
$.fancybox.next();
}
}
// The API will call this function when the page has finished downloading the JavaScript for the player API
function onYouTubePlayerAPIReady() {
// Initialise the fancyBox after the DOM is loaded
$(document).ready(function() {
$(".fancybox")
.attr('rel', 'gallery')
.fancybox({
openEffect : 'none',
closeEffect : 'none',
nextEffect : 'none',
prevEffect : 'none',
padding : 0,
margin : 50,
beforeShow : function() {
// Find the iframe ID
var id = $.fancybox.inner.find('iframe').attr('id');
// Create video player object and add event listeners
var player = new YT.Player(id, {
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
});
});
}
fancybox打开,youtube视频加载,然后看起来它将开始播放,然后我只是得到一个黑屏。这种情况发生在iPhone和iPad上。
有人可以帮忙吗?
答案 0 :(得分:0)
这个问题似乎提出了很多,而且你的问题很可能是因为在Mobile Safari中,javascript被禁止自动播放或以编程方式开始播放标签中的任何内容(因为有没有闪光,是YouTube如何在那里提供视频)。相反,Mobile Safari要求用户必须启动播放(可能是因为用户不打算使用细胞数据而不打算)。
因此,如果fancybox依赖于程序化播放(即event.target.playVideo()
),则它与Mobile Safari不兼容。