Android Visualizer行为

时间:2013-01-10 20:11:55

标签: android audio visualizer aubio

我正在尝试使用C库(Aubio)对Android中MediaPlayer播放的某些音乐进行节拍检测。为了捕获原始音频数据,我使用Visualizer,它定期向回调函数发送一个字节缓冲区,然后回调函数通过JNI将其发送到C库。

我得到了不一致的结果(即几乎没有检测到节拍,并且唯一的节拍与音频不一致)。我已经多次检查了,虽然我不能完全排除我自己在做什么,但我想知道Android Visualizer的行为究竟如何,因为它在{{{ 3}}

  • 如果我使用setCaptureSize设置缓冲区大小,这是否意味着捕获的缓冲区在整个音频样本上取平均值?例如,如果我将捕获大小除以2,它是否仍然代表相同的捕获声音,但在时间轴上的精度的次数减少2倍?
  • 捕获率是否相同?例如,设置两倍的捕获大小和一半的速率会产生相同的数据吗?
  • 捕获是否连续?换句话说,如果我花费太长时间处理捕获,那么当我收到下一次捕获时,处理过程中播放的声音会被忽略吗?

感谢您的见解!

1 个答案:

答案 0 :(得分:0)

确保回调函数获取整个音频信号,例如通过计算从中获取的帧以及到达回调的帧。

有助于指出Visualizer文档。