8

要求

Android 在 sd 卡中打开一个 .wav 文件,播放它,添加一些效果(如回声,音高转换等),保存文件。简单的 :(

我知道的

  1. 我可以使用 Soundpool 或 MediaPlayer 打开和播放文件。
  2. 我可以在使用两者的同时发挥一些效果。即对于媒体播放器,我可以设置环境混响效果。使用 SoundPool 我可以设置播放速率,这有点像音高转换。我现在成功地实施了这些。
  3. 但是这些类中的任何一个都没有任何方法来保存播放的文件。所以我只能播放,我不能保存有效果的音乐。

我想知道的

  1. 除了 MediaPlayer 或 SoundPool 之外,是否还有其他感兴趣的类别。不用管保存,你只是提到类,我会和他们一起研究保存文件。
  2. 任何可以添加效果和保存的第三方库?如果它是开源和免费的,那就太高兴了。但是,即使它是专有的,也要提及它们。
  3. 我可以研究的任何其他领域。OpenAL 是否支持语音过滤和语音定位?它可以与Android一起使用吗?

准备做肮脏的工作。请把路借给我..

编辑:

进行了更多搜索,然后遇到了AudioTrack。但它也不支持保存到文件。所以那里也没有运气..

编辑

好的,如果我自己做呢?从wav文件中获取原始字节,然后进行处理。我使用 AudioRecord 录制了一个 wav 文件,得到了一个 wav 文件。是否有任何资源描述低级音频处理(我的意思是字节级别)。

编辑

好吧,赏金时间到了,我正在为我得到的唯一答案提供赏金。7天后,我明白的是

  1. 我们无法保存使用 MediaPlayer、AudioTrack 等播放的内容。
  2. 没有可供使用的音频处理库。
  3. 您可以获取原始 wav 文件,并自己进行音频处理。答案为读取/写入 wav 文件提供了一个很好的包装类。一个很好的 java 代码来读取和改变 wav 文件的音调在这里
4

1 回答 1

5

WavFile 类http://www.labbookpages.co.uk/audio/javaWavFiles.html声称可以读取和写入 wav 文件,并允许通过样本值数组对每个样本进行操作。它肯定相当小,总共 23kbytes 的源代码。

我确实挣扎了一段时间来构建一个包含 Wavfile 类的 android 应用程序。原来这是因为 WavFile 和 ReadExample(来自上面的链接)都是作为独立的 java 程序设计的,所以包括一个方法main(String [] args){}。Eclipse 看到这一点并认为该类是一个独立的可运行程序,并且当我单击该run按钮时,尝试在开发机器中仅使用 java 执行一个类,而不是在我的手机上启动整个应用程序。当我小心地使用按钮上的小下拉菜单运行整个应用程序时run,我没有任何问题,WavFile 类和示例直接进入,在 IDE 中给出零警告,并按广告运行在我的手机上。

于 2012-11-30T21:40:27.953 回答