【发布时间】:2023-03-11 12:10:01
【问题描述】:
我创建了一个简单的服务器,它使用 fs 模块将 mp3 文件流式传输到浏览器,浏览器在 html5 音频元素中播放它。事实上,音频流非常好,但是,即使我寻求的部分已经被缓冲,我也无法通过流进行搜索。
var express = require('express');
var app = express();
var fs = require('fs');
app.get('/', function (req, res) {
var filePath = 'music.mp3';
var stat = fs.statSync(filePath);
res.writeHead(200, {
'Content-Type': 'audio/mpeg',
'Content-Length': stat.size,
});
var readStream = fs.createReadStream(filePath);
readStream.pipe(res);
});
其他类似的问答建议添加 Content-Range 标头,但我找不到一个简单的示例来说明如何做到这一点。其他人说要使用 206 Partial-Content 标头,但是当我这样做时,音频根本不会播放。
这是demo(在 windows 上的 chrome 上测试)
【问题讨论】:
标签: node.js audio-streaming fs