RLo*_*ris 9 javascript node.js html5-video html5-audio electron
你好呀,
我会尝试更具体地回答我的问题,我正在使用 Angular 9 和最新的 Electron 版本 8.1.1。
我的目标是读取大型媒体文件,例如视频(>4go)、歌曲(flac)或位于我的文件系统上的其他大型文件,但在主进程中使用nodeJS中的流api并将结果(块,缓冲区)发送到渲染器进程。
我如何处理渲染器进程中的流缓冲区,我想使用html5中已经内置的视频和音频api,因此在主进程和渲染器进程之间使用ipc,我将发送块并希望能够显示,播放,使用 html5 api 读取这些块(例如,使用视频标签和属性 src 或音频标签和属性 src)我应该为这些元素提供什么作为 src,以便它像带有 url 的基本 Web 流一样工作?
这是我的主要流程代码(其中我将 fs 与 nodejs 一起使用):
ipcMain.on('getFileStream', (event, arg) => {
try {
if(fs.existsSync(arg.path) && fs.lstatSync(arg.path).isFile()) {
const s = fs.createReadStream(arg.path)
s.on('data', (chunk: Buffer) => {
console.log(chunk)
event.sender.send('getFileStreamResponse', chunk)
}).on('end', () => {
console.log("end stream")
event.sender.send('getFileStreamResponse', false)
s.close()
});
}
} catch(e) {
console.log('getFileStream', e)
}
})
Run Code Online (Sandbox Code Playgroud)
我不想等待所有块开始播放媒体,我希望能够在加载足够的数据时播放媒体。我读过有关 html5 中的 Mediasources 的内容,但想知道这是否是正确的方法,或者您是否知道读取大文件并在渲染器进程中重建块的更好方法?
非常感谢您抽出时间
| 归档时间: |
|
| 查看次数: |
2877 次 |
| 最近记录: |