需求
在Android中打开SD卡中的.wav文件,播放它,并添加一些效果(如回音、音高变化等),保存带有效果的文件。简单吧 :(
我知道的
- 我可以使用Soundpool或MediaPlayer打开和播放文件。
- 我可以在播放时使用两者之一给予一些效果。例如,对于MediaPlayer, 我可以设置环境混响效果。使用SoundPool,我可以设置播放速率,这 有点像音高变化。我现在已经成功地实现了这些。
- 但是,这两个类都没有任何方法来保存播放的文件。所以我只能播 放,不能保存带有音效的音乐。
我想知道的
- 除了MediaPlayer或SoundPool之外,是否还有其他感兴趣的类? 不要担心保存,只需提到类名,我将研究如何使用它们保存文件。
- 是否有第三方库,可以添加效果并保存?如果是开源和免费的, 那就太好了。但即使是专有的,请也一并提及。
- 其他我可以查看的领域。OpenAL是否支持语音过滤以及语音定位? 它是否适用于Android?
准备好做脏活了。请给我指路..
编辑:
进行了更多搜索,发现AudioTrack。但它也不支持保存到文件。所以也没有什么运气..编辑
好吧,如果我自己来做呢?从wav文件中获取原始字节,并在其中工作。我使用AudioRecord录制了一个wav文件,得到了一个wav文件。是否有任何描述低级音频处理(我指字节级别)的资源。编辑
好吧,赏金时间到了,我会把赏金给唯一的答案。经过7天的时间,我明白了以下内容:- 我们无法使用MediaPlayer、AudioTrack等保存我们所播放的内容。
- 没有可用的音频处理库。
- 您可以获取原始的wav文件,并自己进行音频处理。该答案提供了一个很好的包装类,用于读取/写入wav文件。一个很好的用Java编写的读取和改变wav文件音高的代码在这里。