getUserMedia in a web worker

getUserMedia in a web worker

本文关键字:worker web in getUserMedia      更新时间:2023-09-26

我怀疑这个问题的答案是"不",但以防有人有更多的信息…

我正在处理音频和视频,似乎简单地将音频样本存储在ScripProcessorNodeonaudioprocess处理器中(用于后期处理),在低端硬件上使用高达40%的CPU。这使得我的视频处理丢帧。

我想将音频处理移动到网络工作者,但在网络工作者上下文中似乎没有任何访问navigator.webkitGetUserMedia(或任何变体)的权限。

因为我现在只存储数据,它会造成这样的开销,我认为将它以消息的形式发送给网络工作者也会有类似的开销。

简而言之,我的问题是:有没有办法直接从网络工作者访问麦克风?

不幸的是,答案是否定的。网络工作者不能(直接)访问userMedia。根据您处理数据的方式,您可以在主线程中启动,并使用worker.postMessage将一些工作卸载给worker。然而,无论你传递给worker.postMessage什么必须是可序列化的-所以它不能是音频流本身,例如。