准确的音频定时

时间:2015-11-08 10:35:38

标签: android cordova web-audio crosswalk-runtime

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

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

  • 无法使用setInveral()等进行精确计时
  • 不能使用任何其他类型的"触发"音频
  • Cordova NativeAudio插件在真正准确的计时方面也做得不好

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

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

它也运行在android cordova应用程序(Android 4.3.1,Galaxy Nexus)上,但有两件事我还无法解决:

1。)播放咔嗒声时,它听起来有点迟钝(就像它一次触发两次但并非总是如此)而且更重要:

2。)速度似乎是恒定的,但与使用相同设置的台式电脑相比,速度大约低10-20 bpm。

有点难以把它变成小提琴,但我自己主持:

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

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

任何提示为什么在Android设备上运行速度较慢以及我如何解决这个问题会有很多帮助。

1 个答案:

答案 0 :(得分:1)

“Temp始终较慢”听起来像是采样率转换问题。无论如何,循环生成的音频文件将起作用,但是效率低下 - 我建议的策略更像我在http://www.html5rocks.com/en/tutorials/audio/scheduling/中详述的策略。

BTW - 现在的股票Android浏览器是Chrome,从KitKat开始。当然,这并没有打到那里的所有Android,但我们到了那里。