我正在尝试在我的音频播放器App中实现Videogular。 this page上示例代码中的设置如下:
<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>
然而,我试图加载的音频超过一个小时,因此我需要实现“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 + "%");
答案 0 :(得分:0)
是的,这看起来更像AngularJS过滤器中缺少功能而不是Videogular中的问题。我们正在使用AngularJS日期过滤器,正如您在AngularJS文档中看到的那样,只支持浏览器时区或UTC。
https://docs.angularjs.org/api/ng/filter/date
如果您想要显示小时数,我建议您创建自己的过滤器以显示小时数并使用该过滤器代替日期:&#39; mm:ss&#39;。
由于它看起来像Videogular的一个很好的功能,我将尝试查看AngularJS代码并添加完整的时区支持。
答案 1 :(得分:0)
如果您将时区“ +0000”指定为日期过滤器的第二个参数,似乎可以正常工作:
<vg-time-display>{{ currentTime | date:'HH:mm:ss':'+0000' }}</vg-time-display>