1

似乎new YT.Player()正在开发中而不是生产中。

var player = new YT.Player(domId, {
  events: {
    onReady: function() {
      // because of a bug in the youtube iframe api
      var p;
      player.addEventListener('onStateChange', function(e) {
        if (e.data === 1) {
          p = $interval(function() {
            var elapsedTime = Math.floor(player.getCurrentTime());
            $scope.skim.sections[len-1].startTime = elapsedTime;
            setHMS($scope.skim.sections[len-1], elapsedTime);
          }, 1000);
        }
        else {
          $interval.cancel(p);
        }
      });
      console.log("onReady fired");
      updateStartTimeAndSeekTo($scope.skim.sections[len-1]);
      player.pauseVideo();
    }
  }
});

此代码应该在视频播放时更新一些输入字段。它在开发中这样做,但不是在生产中。

是实时页面。是一个解释它应该如何工作的视频。这是相关的 GitHub 代码

我真的不知道如何调试这个。

  • 由于某种原因,这些console.log()声明似乎没有出现在生产中。没有这些,我不知道该怎么办。
  • 我检查了网络选项卡,似乎 api 代码已成功下载。
  • 并且heroku logs没有显示错误。
4

2 回答 2

1

在此处输入图像描述

<iframe style="height: 156.443444006753px;" src="https://www.youtube.com/embed/3eMA0GvpXl0?showinfo=0&amp;enablejsapi=1&amp;origin=http://localhost:9000" ng-class="{ 'unloadedFrame': !skim.videoUrl }" class="subsection-iframe" responsive-height="" resize-on-load="" allowfullscreen="" frameborder="0" ng-src="skim.embedUrl" id="subsection-0-0"></iframe>

检查 iframe 源 url 是否包含origin=http://localhost:9000硬编码。如果您从 url 中删除了 origin 参数。它开始工作了。

于 2014-12-25T18:34:05.313 回答
0

问题可能出在生产环境配置文件中。添加 config.assets.debug = true到 production.rb 为我修复了它。

于 2016-09-23T18:53:55.397 回答