emscripten - 让 Emscripten 流式音频正常工作

标签 emscripten

我正在尝试让 SoLoud 音频引擎与 Emscripten 一起工作,但它的行为相当奇怪。作为实验,我正在播放 500 毫秒的正弦波。

使用 2048 个样本缓冲区,延迟约为一秒或更长,输出的是 25 毫秒的正弦波。如果我将缓冲区减少到 256 个样本,延迟会好一点(仍然很糟糕),并且输出会增长到大约(但不完全是)500 毫秒,而且声音无论如何都不干净。这是使用 Firefox 进行的; chrome 沉默了。

emscripten/tests/sdl_audio* 测试全部使用 sdl_mixer 而不是直接使用流。

所以我的问题是 - 有什么方法可以让流音频(以便我自己进行混合并向某些 API 提供样本缓冲区)在 emscripten 下工作?

最佳答案

目前,有一个 emscripten 的拉取请求,要求 SDL 实现使用 Web Audio API(它目前使用 Mozilla Audio API,这就是 Chrome 保持沉默的原因):https://github.com/kripken/emscripten/pull/1299在同一个拉取请求中,我相信对缓冲流支持进行了许多改进。

否则,OpenAL 实现使用 Web Audio,并且当前在主分支中具有缓冲流支持。

关于emscripten - 让 Emscripten 流式音频正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18350537/

相关文章:

webassembly - 如何将库编译为可从 JavaScript 代码调用的 WebAssembly?

c++ - 使用第3方库将C++项目编译为WebAssembly

javascript - emscripten:如何解决 UnboundTypeError

javascript - 无法通过 JS 中的 Emscripten 获取 C++ SDL 代码

c++ - Emscripten 1.34.1 问题

javascript - 如何使用 emscripten 调用第 3 方 javascript 库?

c++ - 面向WASM的C++代码(具有dlib和opencv)的编译面临的问题

javascript - 如何在 Emscripten 编译器中嵌入多个 cpp 文件?

emscripten - 如何使用 HACL* wasm 库?

c++ - 是否可以像现在一样轻松地编译 Emscripten,但没有控制台和 emscripten Logo ?