我需要一个多窗口应用来共享媒体流。反正有吗?在nw.js中我可以创建一个概念证明,其中在一个窗口中创建的MediaStream可以在另一个窗口中播放,但看起来我无法在Electron中执行此操作。我是对的吗?
答案 0 :(得分:0)
我肯定知道WebRTC可以将音频/视频从MediaStream流传输到另一个窗口进程。到那里去做,基于electron-peer-connection库(实际上,这个过程很容易)。
不幸的是,there are a lot of limitations考虑是否采用这种方法(WebRTC会使用有损压缩来压缩音频,您会有很大的延迟,Electron错误目前会导致音频变成单声道,类似的事情)
所以这对语音之类的东西来说很好,但对于例如高端原生质量的音频处理。
此外,如果您的应用程序不是具有疯狂性能要求的怪物,则还可以使用Web Audio API和ScriptProcessorNode(Electron中仍不提供AudioWorklet)直接从MediaStream访问音频样本数据,并将其发送用标准电子IPC结束。
然后您可以使用Web Audio API和MediaStreamDestinationNode在另一个窗口过程中重建MediaStream。
答案 1 :(得分:-1)
您应该能够使用ipc module
通过main process
发送事件在窗口之间进行通信,并在窗口中添加listeners
。