我想做视频流而不缓冲超过1GB

时间:2016-10-20 07:24:19

标签: javascript

我在没有缓冲的情况下编写视频流代码。它在20分钟的视频中运行良好。我尝试了超过1GB的视频,但不幸的是它没有用。我把它放在我的代码下面。

var ctx = canvas.getContext('2d');

canvas.onclick = function (e) {
    var vl = vid.duration,
        w = canvas.width,
        x = e.clientX - 5;

    vid.currentTime = x / w * vl;
}

loop();

function loop() {

    var b = vid.buffered,
        i = b.length,
        w = canvas.width,
        h = canvas.height,
        vl = vid.duration,
        x1, x2;

    ctx.fillStyle = '#000';
    ctx.fillRect(0, 0, w, h);
    ctx.fillStyle = '#d00';

    while (i--) {
        x1 = b.start(i) / vl * w;
        x2 = b.end(i) / vl * w;
        ctx.fillRect(x1, 0, x2 - x1, h);
    }
    ctx.fillStyle = '#fff';

    x1 = vid.currentTime / vl * w;
    ctx.textBaseline = 'top';
    ctx.textAlign = 'left';

    ctx.fillText(vid.currentTime.toFixed(1), 4, 4);

    ctx.textAlign = 'right';
    ctx.fillText(vl.toFixed(1), w - 4, 4);

    ctx.beginPath();
    ctx.arc(x1, h * 0.5, 7, 0, 2 * Math.PI);
    ctx.fill();

    setTimeout(loop, 29);
}
play.addEventListener('click', function () {
    vid.play()
}, false);
pause.addEventListener('click', function () {
    vid.pause()
}, false);

此代码仅在20分钟内播放。我想知道如何为1GB以上的视频做代码。请帮我提供代码和示例。

0 个答案:

没有答案