要求
Android在sd卡中打开一个.wav文件,播放它,添加一些效果(如回声、音高偏移等),保存文件并生效。简单:(
我所知道的
- 我可以使用Soundpool或MediaPlayer打开并播放文件
- 我可以在玩这两种游戏时都发挥一些效果。用于媒体播放器的ie我可以设置环境混响效果。使用SoundPool我可以设置上场率,这有点像球场的变化。我在立即实施这些措施
- 但是这两个类中的任何一个都没有任何方法来保存播放的文件。所以我只能播放,我不能用保存音乐效果
我想知道什么
- 除了MediaPlayer或SoundPool。别介意存钱,你只要提到课,我就做研究如何与他们一起保存文件
- 有任何第三方库可以添加效果并保存吗?如果快乐它是开源和免费的。但即使是,也要提到他们专有的
- 我可以调查的任何其他领域。OpenAL是否支持语音与语音定位一起过滤?它能和安卓系统一起使用吗
准备好干脏活了。请你把路借给我。。
编辑:
做了更多的搜索,发现了AudioTrack。但它也不支持保存到文件中。所以也没有运气。。编辑
好吧,如果我自己做呢?从wav文件中获取原始字节,然后进行处理。我用AudioRecord录制了一个wav文件,得到了一个wav文件。是否有任何资源描述低级别音频处理(我指的是字节级别)。编辑
悬赏时间到了,我悬赏给我得到的唯一答案。7天后,我明白的是- 我们无法保存使用MediaPlayer、AudioTrack等播放的内容
- 没有可用的音频处理库
- 你可以获取原始的wav文件,并自己进行音频处理。这个答案给出了一个很好的读写wav文件的包装类。A.这里有阅读和更改wav文件音高的好java代码
WavFile类http://www.labbookpages.co.uk/audio/javaWavFiles.html声称可以读取和写入wav文件,并允许通过样本值数组对每个样本进行操作。它当然是相当小的,23K字节的总源代码。
我确实花了一段时间来构建一个包含Wavfile类的android应用程序。这是因为WavFile和ReadExample(来自上面的链接)都是作为独立的java程序使用的,所以包含了一个方法main(String [] args){}
。Eclipse看到了这一点,并认为Class是一个独立的可运行程序,当我单击run
按钮时,它会尝试在开发机器中使用java只执行一个Class,而不是将整个应用程序启动到我的手机上。当我用run
按钮上的小下拉菜单运行整个应用程序时,我不会遇到任何问题,WavFile类和示例会直接出现,在IDE中不会发出任何警告,并且可以在手机上运行。