Android 上的 SoundTouch?

Ada*_*dam 5 java audio android

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

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

我一直在谷歌搜索“Java 中的 SoundTouch”并找到了这个数据(http://www.alu.ch/classdoc/jaw/ch/alu/jaw/SoundTouch.html)。

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

谢谢亚当

dma*_*oni 4

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

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

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

您还需要编写自己的代码来从磁盘读取音频文件,然后通过 SoundTouch 缓冲它并通过 AudioTrack 类缓冲它。MediaPlayer 在这里不会帮助你。

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