Android 可视化工具行为

Posted

技术标签:

【中文标题】Android 可视化工具行为【英文标题】:Android Visualizer behavior 【发布时间】:2013-01-10 20:11:54 【问题描述】:

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

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

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

感谢您的洞察!

【问题讨论】:

【参考方案1】:

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

指出Visualizer 文档会有所帮助。

【讨论】:

我已经有很长一段时间没有做这个了。当我回到我的项目时,我会调查它;)

以上是关于Android 可视化工具行为的主要内容,如果未能解决你的问题,请参考以下文章

炫酷的可视化工具:processing 初识

开发android手机软件的工具都有哪些

Monkey可视化测试工具

详解Python可视化又一必学工具ProPlot

开发Android必知的工具

为啥我的 FFT 提供的可视化工具输出与 Windows Media Player 不同?