Wasm 音频工作线程

查看完整源代码在线查看编译后的示例

这是一个使用 WebAssembly、Rust 和 wasm-bindgen 在特定工作线程内使用线程的示例,最终演示了一个振荡器。此演示应通过演示使用 ES 模块和动态模块创建的替代方法来补充并行光线追踪示例。

构建演示

线程 WebAssembly 的主要陷阱之一是 Rust 不会发布已启用线程支持的预编译目标(例如,标准库)。这意味着您需要使用适当的 rustc 标志(即 -C target-feature=+atomics,+bulk-memory,+mutable-globals)重新编译标准库。请注意,这需要 nightly Rust 工具链。请参阅并行光线追踪示例的更详细的说明

注意事项

此示例与并行光线追踪示例共享其大部分注意事项。但是,它尝试将工作线程创建封装在 Rust 模块中,因此应用程序开发人员无需维护自定义 JS 代码。

浏览器要求

此演示目前应在最新的 Chrome、Firefox 和 Safari 版本中运行。请注意,此示例需要像并行光线追踪中一样设置 HTTP 标头。