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

問題は、実稼働環境の構成ファイルにある可能性があります。production.rb に追加 config.assets.debug = trueすると修正されました。

于 2016-09-23T18:53:55.397 に答える