我有问题。进度条的填充速度比视频以文件结束的速度快。进度条已满,视频尚未完成。
$('.media_audio_player').bind('timeupdate' ,function() {
var id = $(this);
var idn = 'AudioBar_wrap\+'+this.id.split('rolf')[1];
var canvas = document.getElementById(idn);
if (canvas.getContext) {
var ctx = canvas.getContext("2d");
var lingrad = ctx.createLinearGradient(0,0,0,150);
var fWidth = (id.get(0).currentTime / id.get(0).duration) * (canvas.clientWidth);
if (fWidth > 0) {
lingrad.addColorStop(0, '#ebbdbd');
lingrad.addColorStop(0.5, '#dd6060');
lingrad.addColorStop(1, '#dc4c4c');
ctx.fillStyle = lingrad;
ctx.fillRect(0, 0, fWidth, 150);
}
}
});
非常感谢任何帮助。
答案 0 :(得分:5)
var progress = Math.floor(video.currentTime) / Math.floor(video.duration);
controls.progress[0].style.width = Math.floor(progress * controls.total.width()) + "px";
答案 1 :(得分:4)
你也可以做下一个:
var fWidth = (id.get(0).currentTime / id.get(0).duration) * (CanvasWidth);
其中CanvasWidth =长度画布,在文件播放完毕之前填充。 在你的情况下:
var fWidth = (id.get(0).currentTime / id.get(0).duration) * (300);