1

オーディオ プレーヤー アプリに Videogular を実装しようとしています。このページのサンプル コードの設定は次のとおりです。

      <vg-time-display>{{ currentTime | date:'mm:ss' }}</vg-time-display>
      <vg-scrub-bar>
        <vg-scrub-bar-current-time></vg-scrub-bar-current-time>
      </vg-scrub-bar>
      <vg-time-display>{{ timeLeft | date:'mm:ss' }}</vg-time-display>

ただし、ロードしようとしているオーディオの長さは 1 時間以上であるため、「hh:mm:ss」を実装する必要があります。形式を変更するhh:mm:ssと、期間に約 5:00 時間が追加され、00:01:30 が 05:01:30 として表示されます

いくつかのアドホックな実験により、「videogular.js」の次の変更により問題が修正されます。

this.onUpdateTime = function (event) {
  $scope.API.currentTime = 1000 * event.target.currentTime - (1000 * 60 * 300 * 5 * 5);

  if (event.target.duration != Infinity) {
    $scope.API.totalTime = 1000 * event.target.duration - (1000 * 60 * 300 * 5 * 5);
    $scope.API.timeLeft = 1000 * (event.target.duration - event.target.currentTime) - (1000 * 60 * 300 * 5 * 5);
    $scope.API.isLive = false;
  }
}

しかし、それは私が修正できなかった次のコードにも影響します:

  percentTime = 100 * (newCurrentTime / API.totalTime);
  elem.css("width", percentTime + "%");
4

2 に答える 2

0

ええ、それは Videogular の問題というよりは、AngularJS フィルターの機能の欠如のようです。AngularJS ドキュメントでわかるように、ブラウザーのタイムゾーンまたは UTC のみをサポートする AngularJS 日付フィルターを使用しています。

https://docs.angularjs.org/api/ng/filter/date

時間を表示したい場合は、独自のフィルターを作成して時間を表示し、date:'mm:ss' の代わりにそれを使用することをお勧めします。

Videogular の優れた機能のように見えるので、AngularJS コードを調べて、完全なタイムゾーン サポートを追加してみます。

于 2015-02-16T09:30:14.163 に答える