问题描述
我正在开发一个网络广播网络应用程序,我希望用户直播音频文件。我的方法是从音乐文件创建一个可读流并写入 res
对象,如下所示。
在服务器上:
function delay(millis) {
return new Promise(function(resolve) {
setTimeout(resolve,millis);
});
}
const express = require('express');
(async function() {
const app = express();
const writables = [];
const readableStream = fs.createReadStream('music.mp3');
readableStream.on('data',async function(chunk) {
await delay(2711); // arbitrary delay
writables.forEach(function(writable) {
writable.write(chunk);
});
});
app.get('/stream',async function(req,res) {
writables.push(res);
}
await app.listen(8080);
})();
在浏览器上:
<audio src="http://localhost:8080/stream" autoplay></audio>
当我测试时,它不起作用。我开始深入研究这个问题,然后我发现问题是,只要发送到浏览器的数据不包含第一个块,它就不会播放。可能是因为文件块不是独立的什么的。
如何从文件中读取块,以便它们可以独立播放?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)