如何从立体声声音文件(.mp3)中获取样本数据并将其推入缓冲区? 是否有任何具有该功能的特定库? 对不起,如果这个问题真的是菜鸟,我对音频编程很新。
提前致谢=)
答案 0 :(得分:1)
“通过直接Android API播放MP3文件的唯一方法是MediaPlayer,它重量级,速度慢且仅提供高级API。如果您需要混合或修改音频流或以低延迟管理它们,你是靠自己。“
(通过:http://mindtherobot.com/blog/624/android-audio-play-an-mp3-file-on-an-audiotrack/)
所以这很不幸。 JLayer是免费的,用Java编写,所以你可以使用它:
http://www.javazoom.net/javalayer/javalayer.html
它是否足够快取决于您想要做多少分析,以及手机中的处理器类型,其他应用程序正在运行。所有常见的事情。
如果你有一些CPU密集型的东西,你可以编写本机代码并使用C / C ++库,这将使你有更好的机会进行实时分析:
http://developer.android.com/sdk/ndk/overview.html
某些ARM处理器具有矢量指令等,如果它们可用,您可以利用它们,这可以提高速度:
http://www.arm.com/products/processors/technologies/neon.php
如果您正在做的事情不是纯粹的实时,您可以考虑进行全部或部分预处理。然后缓存分析信息,这样用户只需要等待第一次...或者让他们选择让你的应用程序在一夜之间分析所有文件或者某些文件。