准确的音频时序

Accurate audio timing

我目前正面临着编写一个应用程序(IOS 和 Android)的任务,其中一个功能是鼓手的节拍器。

我不想有多个项目,所以我决定使用 cordova。我偶然发现了很多问题并解决了其中一些问题:

所以我遇到了 Web Audio API 大多数平台上的 Android Stock 浏览器不支持它所以我找到了人行横道项目支持 Web Audio API.

好消息是我的节拍器测试在 chrome 桌面浏览器上运行良好。它与我的硬件节拍器并行运行时绝对准确。如果我使用当前 Android Chrome 应用程序打开它,它也运行良好。

它也可以在 android cordova 应用程序(Android 4.3.1,Galaxy Nexus)上运行,但有两件事我还没有搞清楚:

1.) 播放点击声音时有时听起来有点滞后(好像一次触发两次但并非总是如此)更重要的是:

2.) 节奏似乎是恒定的,但与具有相同设置的台式电脑相比,速度慢了大约 10-20 bpm。

很难将其放入 fiddle 但我自己将其托管在:

http://gonzales.capella.uberspace.de/sound/

您可以通过 chrome 调试器找到所有源代码。

任何关于为什么这在 Android 设备上 运行 变慢的提示以及我如何解决这个问题的任何提示都会有很大帮助。

"Temp consistently slower" 听起来像是采样率转换问题。无论如何,循环生成的音频文件是可行的,但效率有点低 - 我建议采用一种更像我在 http://www.html5rocks.com/en/tutorials/audio/scheduling/.

中详述的策略

顺便说一句 - 从 KitKat 开始,现有的 android 浏览器现在是 Chrome。当然,这并没有影响所有 Android,但我们正在实现目标。