小编Ada*_*rsh的帖子

如何使用流将 MediaRecorder Web API 输出保存到磁盘

我正在Electron(因此Node.js )中试验MediaStream Recording API,并希望将输出作为流处理。作为流处理将允许我在之前处理 MediaRecorder 输出- 例如,我可以对其进行加密。对于我的具体用例,我只关心音频,所以我没有录制任何视频元素。

\n\n

我最基本的用例是简单地使用流将输出保存到磁盘,但我似乎无法实现这一基本任务,所以我将把这个问题集中在实现这一点上。

\n\n

问题:如何使用流将 MediaRecorder Web API 输出保存到磁盘。

\n\n

我可以使用下载 \xe2\x80\x9chack\xe2\x80\x9d(由 Google 此处提供和描述)将文件保存到磁盘,并成功使用node.js fs打开、转换(加密)、保存新文件加密的文件,并删除未加密的文件。这意味着我最终必须将未加密的数据保存到磁盘上。即使时间很短,这也感觉像是一种安全妥协,我认为通过在保存之前加密可以很容易地避免这种情况。

\n\n

我存在在不同流对象之间交叉很多电线的风险,但令我惊讶的是我还没有在网上找到解决方案 - 因此我提出了我的 StackOverflow 问题樱桃。

\n\n

下面是一个突出显示我所尝试过的所有项目的项目。关键代码是record.js,在save()函数中。

\n\n

最终,我试图创建一个合适的插件readStream来插入使用 usingwriteStream创建的。const writeStream = fs.createWriteStream(fPath);readStream.pipe(writeStream)

\n\n

总而言之,我尝试了以下方法:

\n\n

1.BlobreadStream

\n\n

我无法转换BlobreadStream, only ReadableStream,ReadableStreamDefaultReaderUint8Array

\n\n

2.Blobfile(在内存中)然后使用fs.createReadStream()

\n\n

我似乎无法使用 …

javascript stream node.js electron mediarecorder-api

6
推荐指数
1
解决办法
7571
查看次数