Получение данных PCM из MP3 на Android - PullRequest
4 голосов
/ 15 марта 2011

Я заинтересован в анализе музыки на платформе Android.Для этого я хочу разобрать произвольный MP3 в данные PCM.Я огляделся вокруг, и, кажется, нет простого способа сделать это.Одно из решений, которое я пробовал, использует jLayer .Это работает, но невероятно медленно, декодируя песню в то же время, что и для ее воспроизведения.

Я знаю, что на Android существует MP3-декодер, так говорит Google при поддерживаемых типах носителей.Кто-нибудь знает, как использовать декодер Android для декодирования MP3, фактически не воспроизводя его?Все, что я хочу сделать, это отвести биты от ЦАП и вместо этого сохранить их в каком-то буфере.

В качестве альтернативы, кто-нибудь имел успех с использованием NDK и что-то вроде MAD ?Производительность так хороша?

1 Ответ

2 голосов
/ 15 марта 2011

Вы можете скомпилировать и использовать декодер LAME. Он отлично работает на ARM. А так как C / C ++, производительность будет лучше.

Аппаратный декодер на большинстве платформ ARM ориентирован на воспроизведение. Так что не дал бы вам идеальный PCM. Например, чтобы избежать дрожания, некоторые данные будут пропущены при высокой нагрузке.

Инструкция по компиляции LAME:

Lame MP3 Encoder для Android

...