具有SDL音频的Emscripten工作者模型

时间:2016-05-19 08:33:39

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

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

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

注意:我指的是在没有pthreads支持的情况下编译的emscripten。

1 个答案:

答案 0 :(得分:2)

  

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,并且无法访问在工人范围..

https://developer.mozilla.org/en/docs/Web/API/AudioContext,这是提到的AudioWorker,但它说明了createAudioWorker ......

  

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