2

如何从立体声文件(.mp3)中获取样本数据并将它们推送到缓冲区中?是否有具有该功能的特定库?对不起,如果这个问题真的是菜鸟,我对音频编程很陌生。

提前感谢=)

4

1 回答 1

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

如果您正在做的事情不能是纯实时的,您可能会考虑进行全部或部分预处理。然后缓存分析信息,这样用户只需第一次等待......或者让他们选择让您的应用程序在一夜之间分析所有文件或类似的东西。

于 2011-10-20T09:24:32.113 回答