YouTube iframe api无法在iOS上点击处理程序播放

时间:2016-01-12 00:05:38

标签: ios youtube youtube-api

我正在使用Youtube iframe api在嵌入视频上显示自定义缩略图和播放按钮。除了iOS之外,它在任何地方(包括android)工作,我得到“如果播放不会很快开始,请尝试重新启动设备”缩略图后面。如果我隐藏缩略图,我可以使用Youtube的播放按钮(使用我的控件之前)和html5播放按钮(使用我的控件之后)播放视频

我知道自动播放视频的限制,但这应该绕过它,因为它是由点击处理程序触发,并且在具有相同限制的android上工作

function loadVideo(videoID, title, description, thumbUrl, waitPlay) {
    var playBtn = jQuery(".playerThumb");
    jQuery(".playerTitle").text(title);
    jQuery(".playerDesc").text(description);

    jQuery(".playerEmbed").replaceWith("<div id='video' class='playerEmbed'></div>");
    playBtn.css("background-image", "url(" + thumbUrl + ")").show().off('click').removeClass("ready");
    jQuery("html, body").animate({ scrollTop: 0 }, 400, "swing", function(){});

    ytPlayer = new YT.Player('video', {
        videoId: videoID,
        playerVars: {
            rel: 0,
            showinfo: 0,
            autoplay: (waitPlay === true ? 0 : 1)
        },
        events: {
            'onReady': onReady,
            'onError': function(e){console.error(e);},
            'onStateChange': function(e){if (e.data == YT.PlayerState.PLAYING) jQuery(".playerThumb").fadeOut();}
        }
    });

    function onReady(e) {
        playBtn.click(function() {ytPlayer.playVideo();}).addClass("ready");
        if (waitPlay !== true) {
            if (ytPlayer.getPlayerState() == YT.PlayerState.PLAYING) {
                playBtn.hide();
            }
        }
    }
}

如何让它在iOS上运行?我唯一的选择是只使用iOS的默认播放按钮吗?

1 个答案:

答案 0 :(得分:0)

有同样的问题并找到了解决方案。

事实证明,在iOS上,您无法使用任何div覆盖YouTube视频,用户需要直接点击youtube iframe才能启动视频。