Поток аудио node.js, отсутствует заголовок диапазона после начальной загрузки страницы? - PullRequest
0 голосов
/ 02 декабря 2018

У меня есть этот код аудиопотока, в котором я пытаюсь получить значение для диапазона, поскольку пользователь взаимодействует с ним в браузере, как видеопоток, однако в этом случае поведение не складывается;после начальной загрузки страницы диапазон больше не присутствует в запросе, даже при последующих обновлениях.

const { createServer } = require('http');
const { createReadStream, stat } = require('fs');
const path = require('path');
const { promisify } = require('util');
const fileInfo = promisify(stat);
const audiofile = path.join(__dirname, 'myfile.mp3');

createServer(async (req, res) => {
    const { size } = await fileInfo(audiofile);
    let range = req.headers.range;

    if(range) {
        console.log(range);

        let [start, end] = range.replace(/bytes=/, '').split('-');
        start = parseInt(start, 10);
        end = end ? parseInt(end, 10) : size - 1;

        res.writeHead(206, {
            'Content-Range': `bytes ${start}-${end}/${size}`,
            'Accept-Ranges': 'bytes',
            'Content-Type': 'audio/mpeg',
            'Content-Length': (end-start) + 1,
        });

        createReadStream(audiofile, { start, end }).pipe(res);
    }
    else {
        console.log(range);

        res.writeHead(200, {'Content-Length': size,'Content-Type':'audio/mpeg'});
        createReadStream(audiofile).pipe(res);
    }
}).listen(3000);

Чего мне не хватает, неправильный порядок заголовков или как сохранить значение диапазона?Что-то подсказывает мне, что это будет переписать код, поскольку я предполагаю, что работа с видео - это одно, а аудио - другое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...