Раньше был хороший пост в блоге о том, как скомпилировать lame для Android, но по какой-то причине он был недоступен некоторое время и доступен только на некоторых хитрых китайских сайтах.
Я просто скопирую содержимое ниже:
портирование компилятора хромого кодера на Android ARM arch с помощью Android NDK
Я искалдля приложения для кодирования mp3 в Android Market, и было найдено очень мало, я думаю, что Android не поддерживает кодирование mp3, потому что mp3 является запатентованной технологией.Другая причина, я думаю, что люди предпочитают Java-программирование и Android SDK, а не собственный набор разработчика Android.
Тем не менее, компиляция библиотеки libmp3lame для Android с использованием Android NDK на самом деле очень проста.
- загрузить AndroidNDK (также вам нужен Android SDK и Eclipse с плагином ADT) и создайте простой проект.
- создайте каталог с именем "jni" в каталоге вашего проекта.
- загрузите исходные тексты, извлеките, скопируйте все источникииз каталога libmp3lame в каталог jni.Также скопируйте lame.h, который находится в каталоге include источников lame.
- создайте файл jni / Android.mk.это должно выглядеть так:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)`
LOCAL_MODULE := mp3lame
LOCAL_SRC_FILES := bitstream.c fft.c id3tag.c mpglib_interface.c presets.c quantize.c reservoir.c tables.c util.c VbrTag.c
encoder.c gain_analysis.c lame.c newmdct.c psymodel.c
quantize_pvt.c set_get.c takehiro.c vbrquantize.c version.c
include $(BUILD_SHARED_LIBRARY)
очистить исходные файлы, удалить то, что осталось от автоинструментов GNU, Makefile.am
, Makefile.in
, libmp3lame_vc8.vcproj
, logoe.ico
, depcomp
, папки i386
, vector
. editфайл jni/utils.h
и замените определение extern ieee754_float32_t fast_log2(ieee754_float32_t x);
этим extern float fast_log2(float x);
. Перейдите в корневой каталог вашего проекта Android и запустите $pathtoandroidndk/ndk-build
.,
Также вам может быть интересен следующий вопрос о SO, так как он касается некоторых проблем после компиляции lame для Android: