Electron中窗口之间的共享数据

时间:2017-07-31 06:00:38

标签: electron

我需要一个多窗口应用来共享媒体流。反正有吗?在nw.js中我可以创建一个概念证明,其中在一个窗口中创建的MediaStream可以在另一个窗口中播放,但看起来我无法在Electron中执行此操作。我是对的吗?

2 个答案:

答案 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