我知道.seekTo()可在Javascript API中使用,但是我无法使其与 iFrame API一起使用。是否支持此方法?以下代码成功嵌入了视频,并成功console.log-s播放器对象。我在控制台中收到错误“player.seekTo不是函数”。

    <script>
        var tag = document.createElement('script');
        tag.src = "http://www.youtube.com/player_api";
        var firstScriptTag = document.getElementsByTagName('script')[0];
        firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
        var player;
        function onYouTubePlayerAPIReady() {
            player = new YT.Player('player', {
                height: '390',
                width: '640',
                videoId: 'u1zgFlCw8Aw'
            });
        }
        $(window).load(function(){
            jQuery('#test').click(function(){
                //console.log('test');
                console.log(player);
                player.seekTo(25);
                return false;
            });
        });
    </script>
    <a href="#" id="test">Test</a>

有任何想法吗?谢谢!

最佳答案

这是使用有效的新iframe api的an updated jsfiddle

仅供引用:如果您仅使用嵌入的iframe纯HTML,则可以将?start=30用作开始时间

<iframe width="640" height="390"
        src="//www.youtube.com/embed/p2H5YVfZVFw?start=30"
        frameborder="0" allowfullscreen></iframe>

对于API,您可以像这样在特定时间开始播放视频。
使用start参数
function onYouTubePlayerAPIReady() {
     player = new YT.Player('player', {
       height: '390',
       width: '640',
       videoId: 'p2H5YVfZVFw',
         playerVars: { 'start': 159, 'autoplay': 1, 'controls': 1 },
       events: {
         'onReady': onPlayerReady,
         'onStateChange': onPlayerStateChange,
       }

     });

您只能在播放器开始播放后或不执行任何操作后才调用seekTo。检查playerStateChange回调:
onStateChange': onPlayerStateChange

添加此回调函数
function onPlayerStateChange(evt)
{
    if (evt.data==1)
    {
        // this will seek to a certain point when video starts
        // but you're better off using 'start' parameter
        // player.seekTo(22);
    }
}

jsFiddle在底部具有按钮,以寻找30、60、90秒。已对所有带有“rome”韵的浏览器进行了测试。当它打开时,将为player.seekTo函数类型弹出一个警告框。如果显示“未定义”,则您有问题。

关于php - YouTube iFrame API .seekTo()不是方法吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9813774/

10-10 21:54