将获取API的流输出缓冲区大小设置为一个设置值

时间:2018-10-27 12:29:43

标签: javascript html5 video-streaming fetch

我有一个提取序列,试图将缓冲区大小每次都设置为相同。我使用autoAllocateChunkSize和highWaterMark定义了我希望的大小,但是它们似乎都没有做任何事情。在下面的示例中,我期望console.log的输出与变量chunkLength的值相同。但是,该值始终与我期望的大小不同且很小。

var streamUrl = 'http://www.url.to/stream.ts';
var chunkLength = 3000000;

fetch(streamUrl).then((response) => {

    const reader = response.body.getReader();

    const stream = new ReadableStream({

        autoAllocateChunkSize: chunkLength,
        queueingStrategy: { highWaterMark: chunkLength },

        start(controller) {

            function push() {

                reader.read().then(({ done, value }) => {

                    // Is there no more data to read?
                    if (done) {

                        controller.close();
                        return;

                    }

                    console.log(value); 
                    controller.enqueue(value);
                    push();

                });
            };
            push();
        }
    });
    return new Response(stream, { headers: { "Content-Type": "application/octet-stream" } });
})

0 个答案:

没有答案