【问题标题】:Shared data between windows in Electron在 Electron 中的窗口之间共享数据
【发布时间】:2018-07-26 16:56:18
【问题描述】:

我需要一个多窗口应用程序来共享媒体流。有没有办法做到这一点?在 nw.js 中,我可以创建概念证明,在一个窗口中创建的 MediaStream 可以在另一个窗口中播放,但似乎我无法在 Electron 中执行此操作。我说的对吗?

【问题讨论】:

    标签: electron


    【解决方案1】:

    我确信 WebRTC 可以将音频/视频从 MediaStream 流式传输到另一个窗口进程。到过那里,根据electron-peer-connection 库完成了这项工作(实际上,它使过程变得非常简单)。

    不幸的是,there are a lot of limitations 考虑您是否采用这种方法(WebRTC 将使用有损压缩来压缩您的音频,您会有很大的延迟,目前 Electron 错误会导致音频变成单声道,诸如此类)。

    所以这适用于语音之类的东西,但不适用于例如语音。高端原生品质的音频处理。


    此外,如果您的应用程序不是具有疯狂性能要求的怪物,您还可以使用 Web Audio API 和 ScriptProcessorNode(AudioWorklet 在 Electron 中仍然不可用)直接从 MediaStream 访问音频样本数据,并将其发送使用标准电子 IPC。

    然后您可以使用 Web Audio API 和 MediaStreamDestinationNode 在其他窗口进程中重建 MediaStream。

    【讨论】:

      【解决方案2】:

      您应该能够使用ipc module 在窗口之间进行通信,方法是通过main process 发出事件并在窗口中为它们添加listeners

      【讨论】:

      • 我对这个想法很熟悉,但这对实时 MediaStreams 有用吗?
      • 我想我认为这仅对 JSON 样式数据有用。
      猜你喜欢
      • 2023-03-29
      • 1970-01-01
      • 2017-09-15
      • 2012-01-19
      • 2019-01-18
      • 1970-01-01
      • 1970-01-01
      • 2015-03-28
      • 1970-01-01
      相关资源
      最近更新 更多