html5_mixer
这是用于与Emscripten编译器一起使用的SDL2_mixer音乐功能的最小置换。它使用html5 <audio>渲染音乐。
概述
emscripten-ports/SDL2_mixer是一个WebAssembly端口,在WASM中执行所有声音解码。它通过emscripten-ports/SDL2将样本推向Web音频上下文以进行播放。
尽管这种方法确保了与本机构建的最高奇偶校验,但该程序容易丢弃样品和播放studters,因为音乐解码和音频渲染都在主线程中发生。
为了减少处理负载,我们实现了SDL2_mixer接口,通过<audio>使用浏览器的本机播放功能。
如何使用
将此包装下载到您选择的位置。在您的“ Include”目录中指定./include ,并在您的来源中指定./src中的文件。
在您的编译器和链接器标志中,指定-s USE_SDL=2 。您可以与SDL混音器( -s USE_SDL_MIXER=2 )同时使用此库,但这不是必需的。
您可以通过在宏定义中指定-D html5_mixer _SHIM_MUSIC来通过指定-d html5_mixer Mix_*()音乐功能。
支持无SDL2链接此库的支持,但这是未经测试的。如果您想尝试,请指定-D html5_mixer _NO_SDL 。
笔记
我们不执行任何解码;我们只是将URL或数据缓冲区传递到Audio()实例。
您的音频文件必须由用户的Web浏览器支持。有关格式兼容性表,请参见Wikipedia。
当前,我们支持SDL2_mixer API的最小子集。有关进度,请参见第1期。
潜在的下一步
- 从
ScriptProcessorNode到AudioWorklet迁移SDL2的声频道渲染。 - 通过
AudioContext.decodeAudioData()渲染音乐。看:- WebAudio/Web-Audio-API#1850-共享arrayBuffer源
- Webaudio/Web-Audio-API#337-流部分内容
- Webaudio/Web-Audio-Api-V2#61-使用WebCodec
- Anthumchris/fetch-stream-audio
- stackoverflow
参见
SDL2_mixer文档SDL_mixer_html5带有此HTML5接口的完整SDL混合器
执照
html5_mixer代码是根据MIT许可发布的。
该项目合并了SDL_mixer_html5的代码,该代码根据3条规定BSD许可证发布。
