嗨,我正在尝试在android应用程序中更改音频文件的音高。

我在网上找到了一个开源库“SoundTouch”(http://www.surina.net/soundtouch),您认为我可以在android应用程序中使用该库吗?

我一直在谷歌搜索“SoundTouch in Java”,并找到了该数据(http://www.aplu.ch/classdoc/jaw/ch/aplu/jaw/SoundTouch.html)。

我可能会使用这个库,或者关于其他可用来更改android上音频文件的音调的其他库或过程的任何想法?我还研究了Android不支持它们的Java Sound API。 :/

谢谢
亚当

最佳答案

您是否考虑过仅更改采样率?如果您将原始音频样本加载到内存中并使用Android的AudioTrack类播放它们,则可以指定各种可能的采样率,Android会为您重新采样。这将改变音调和速度,就像以错误的速度播放唱片一样。如果您绝对需要在不影响速度的情况下更改音高,则需要SoundTouch或类似的东西。

无论如何,这绝对是可能的,但是需要大量的工作。

您需要使用Android NDK( native 开发套件)来编译SoundTouch。您发现的Java包装器可能会有所帮助,但最终您需要动手使用NDK。

您还需要编写自己的代码以从磁盘读取音频文件,然后通过SoundTouch对其进行缓冲,然后通过AudioTrack类对其进行缓冲。 MediaPlayer在这里无法为您提供帮助。

最后,请注意,发布应用程序时,您需要遵守LGPL的条款。

10-04 16:58