【问题标题】:Is there a way to cue a Youtube video in an iframe to rounded seconds?有没有办法将 iframe 中的 Youtube 视频提示为四舍五入的秒数?
【发布时间】:2018-02-18 09:51:21
【问题描述】:

我在播放视频时使用YouTube Iframe API,我想同时播放其他内容。 当视频被提示到特定点时,我会遇到麻烦,因为无法获得毫秒。

我的想法是使用下面的代码来舍入当前时间:

function onPlayerStateChange(event) {
    if(event.data == YT.PlayerState.CUED){
         player.seekTo(player.getCurrentTime())
    }
  }

但这不起作用,如果视频被提示为 23.4 秒,它只会停留在 23.4 秒。

【问题讨论】:

    标签: youtube-api youtube-iframe-api


    【解决方案1】:

    您可以从SO post 1SO post 2 了解他们如何设法获得准确的时间。

    来自 SO 帖子 1,

    您可以使用浮点数指定秒的分数

    来自 SO post 2,here 是一个演示。请参阅下面使用的代码。

     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('#seek').click(function(){
                    player.seekTo(parseFloat($("#seekto").val()));
                    return false;
                });
            });
    

    【讨论】:

    • 很高兴知道,但我需要的是 player.getCurrentTime() ,它返回一个浮点值...
    【解决方案2】:

    我通过使用更新版本的 API 解决了这个问题,其中 player.getCurrentTime() 返回一个浮点数。

    阅读docs here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-10
      • 1970-01-01
      • 2017-12-26
      • 2011-07-16
      • 2013-09-14
      • 1970-01-01
      • 1970-01-01
      • 2013-08-22
      相关资源
      最近更新 更多