【问题标题】:Emscripten worker-model with SDL audio带有 SDL 音频的 Emscripten 工作模型
【发布时间】:2016-05-19 08:33:39
【问题描述】:

据我了解 Emscripten 工作者模型,它不支持共享状态。但是,我可以在 SDL 音频回调和我的主循环之间共享全局变量,如果我理解正确的话,这应该是不可能的。 emscripten 是否在主线程上执行音频回调,因此这是可能的,还是我完全误解了工作者概念和全局变量共享?

(我的假设是音频回调在工作人员中执行)。

注意:我指的是没有 pthreads 支持的 emscripten。

【问题讨论】:

    标签: c++ audio sdl emscripten asm.js


    【解决方案1】:

    emscripten 是否在主线程上执行音频回调

    是的。

    据我所知,浏览器中的 Javascript(无论是否从 C++ 编译)都无法从主线程播放音频

    https://github.com/kripken/emscripten/blob/1.36.4/src/library_sdl.js 可以看出,Emscripten 在底层使用了 AudioContext,通过https://developer.mozilla.org/en/docs/Web/API/AudioContexthttps://developer.mozilla.org/en-US/docs/Web/API/DedicatedWorkerGlobalScope,AudioContext 只能在主线程中创建,而不能在 Worker 范围内访问。

    https://developer.mozilla.org/en/docs/Web/API/AudioContext 提到了 AudioWorker,但它声明了关于 createAudioWorker...

    创建一个 AudioWorkerNode,它可以与 Web 工作线程交互以直接生成、处理或分析音频。这已于 2014 年 8 月 29 日添加到规范中,尚未在任何浏览器中实现。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-30
      • 1970-01-01
      • 2013-07-24
      相关资源
      最近更新 更多