1

私は問題があります。プログレスバーは、ビデオがファイルで終わるよりも早くいっぱいになります。プログレスバーがいっぱいで、ビデオはまだ完成していません。

$('.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);
        }
    }
});

どんな助けでも大歓迎です。

4

2 に答える 2

5
var progress = Math.floor(video.currentTime) / Math.floor(video.duration);
controls.progress[0].style.width = Math.floor(progress * controls.total.width()) + "px";
于 2012-09-19T05:37:37.797 に答える
4

また、次を作ることができます:

var fWidth = (id.get(0).currentTime / id.get(0).duration) * (CanvasWidth);

ここで、CanvasWidth はキャンバスの長さであり、ファイルの再生が終了する前に設定されます。あなたの場合:

var fWidth = (id.get(0).currentTime / id.get(0).duration) * (300);
于 2012-09-20T13:20:19.940 に答える