html5_mixer

FLASH源码 2025-07-30

html5_mixer

这是用于与Emscripten编译器一起使用的SDL2_mixer音乐功能的最小置换。它使用html5 渲染音乐。

概述

emscripten-ports/SDL2_mixer是一个WebAssembly端口,在WASM中执行所有声音解码。它通过emscripten-ports/SDL2将样本推向Web音频上下文以进行播放。

尽管这种方法确保了与本机构建的最高奇偶校验,但该程序容易丢弃样品和播放studters,因为音乐解码和音频渲染都在主线程中发生。

为了减少处理负载,我们实现了SDL2_mixer接口,通过使用浏览器的本机播放功能。

如何使用

将此包装下载到您选择的位置。在您的“ 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期。

潜在的下一步

  • ScriptProcessorNodeAudioWorklet迁移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许可证发布。

下载源码

通过命令行克隆项目:

git clone https://github.com/devappd/html5_mixer.git