Videogular 显示视频的开始时间和结束时间不正确
Videogular displays incorrect start time and end time for a video
为什么 videogular 没有显示正确的视频开始时间?对于所有视频,它从 30:00 开始,应该是 00:00 并随着视频播放开始递增。
<vg-controls>
<vg-play-pause-button></vg-play-pause-button>
<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>{{ totalTime | date:'mm:ss' }}</vg-time-display>
<vg-volume>
<vg-mute-button></vg-mute-button>
<vg-volume-bar></vg-volume-bar>
</vg-volume>
<vg-fullscreen-button></vg-fullscreen-button>
</vg-controls>
在图片中您可以看到视频是 62 分钟,但显示的总时间是 2 分钟,当前显示的时间是 30:12,但只播放了 00:12ss。
有什么建议可以实现吗?谢谢
Videogular 正在使用 date filter。
您只需添加时区即可。
<vg-time-display>{{ currentTime | date:'mm:ss':'+0000' }}</vg-time-display>
使用'UTC'过滤器
<vg-time-display>{{ currentTime | date:'mm:ss':'UTC' }}</vg-time-display>
这适用于所有时区。
创建一个 returns 可读格式时间的函数,并在 vg-time-display 标签中使用该函数
html
<vg-time-display>{{ getTimeString(currentTime) }}</vg-time-display>
angular函数
$scope.getTimeString = function (duration ){
var seconds = Math.floor((duration / 1000) % 60),
minutes = Math.floor((duration / (1000 * 60)) % 60),
hours = Math.floor((duration / (1000 * 60 * 60)) % 24);
hours = (hours < 10) ? "0" + hours : hours;
minutes = (minutes < 10) ? "0" + minutes : minutes;
seconds = (seconds < 10) ? "0" + seconds : seconds;
var timeInString;
if (hours > 0) {
timeInString = hours + ":" + minutes + ":" + seconds;
} else {
timeInString = minutes + ":" + seconds;
}
return timeInString;
}
为什么 videogular 没有显示正确的视频开始时间?对于所有视频,它从 30:00 开始,应该是 00:00 并随着视频播放开始递增。
<vg-controls>
<vg-play-pause-button></vg-play-pause-button>
<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>{{ totalTime | date:'mm:ss' }}</vg-time-display>
<vg-volume>
<vg-mute-button></vg-mute-button>
<vg-volume-bar></vg-volume-bar>
</vg-volume>
<vg-fullscreen-button></vg-fullscreen-button>
</vg-controls>
在图片中您可以看到视频是 62 分钟,但显示的总时间是 2 分钟,当前显示的时间是 30:12,但只播放了 00:12ss。
有什么建议可以实现吗?谢谢
Videogular 正在使用 date filter。
您只需添加时区即可。
<vg-time-display>{{ currentTime | date:'mm:ss':'+0000' }}</vg-time-display>
使用'UTC'过滤器
<vg-time-display>{{ currentTime | date:'mm:ss':'UTC' }}</vg-time-display>
这适用于所有时区。
创建一个 returns 可读格式时间的函数,并在 vg-time-display 标签中使用该函数
html
<vg-time-display>{{ getTimeString(currentTime) }}</vg-time-display>
angular函数
$scope.getTimeString = function (duration ){
var seconds = Math.floor((duration / 1000) % 60),
minutes = Math.floor((duration / (1000 * 60)) % 60),
hours = Math.floor((duration / (1000 * 60 * 60)) % 24);
hours = (hours < 10) ? "0" + hours : hours;
minutes = (minutes < 10) ? "0" + minutes : minutes;
seconds = (seconds < 10) ? "0" + seconds : seconds;
var timeInString;
if (hours > 0) {
timeInString = hours + ":" + minutes + ":" + seconds;
} else {
timeInString = minutes + ":" + seconds;
}
return timeInString;
}