【发布时间】:2011-10-20 08:50:44
【问题描述】:
如何从立体声文件 (.mp3) 中获取样本数据并将其推送到缓冲区中? 是否有具有该功能的特定库? 对不起,如果这个问题真的是菜鸟,我对音频编程很陌生。
提前致谢 =)
【问题讨论】:
标签: android audio mp3 processing sampling
如何从立体声文件 (.mp3) 中获取样本数据并将其推送到缓冲区中? 是否有具有该功能的特定库? 对不起,如果这个问题真的是菜鸟,我对音频编程很陌生。
提前致谢 =)
【问题讨论】:
标签: android audio mp3 processing sampling
“通过直接 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
如果您正在做的事情不能是纯实时的,您可以考虑进行全部或部分预处理。然后缓存分析信息,这样用户只需第一次等待……或者让他们选择让您的应用在一夜之间分析所有文件等。
【讨论】: