Подтвердить что ты не робот

Компилятор Lame MP3 Encoder для Android

Я хочу скомпилировать хромого кодировщика для Android. Как найти учебники для Lame и их компиляции для платформы Android.

Спасибо,

4b9b3361

Ответ 1

Раньше было хорошее сообщение о том, как скомпилировать lame для Android, но по какой-то причине он был отключен на некоторое время и доступно только на некоторых изворотливых китайских сайтах.

Я просто скопирую контент ниже:

перенос компиляции хромого кодировщика в арку Android ARM с помощью Android NDK

Я искал приложение для кодирования mp3 в Android Market, и нашел очень мало, причина, по которой я думаю, что Android не поддерживает mp3 кодирование - это потому, что mp3 - это запатентованная технология. Еще одна причина: я предполагают, что люди предпочитают Java-программирование и Android SDK, а не Собственный набор разработчика для Android.

Тем не менее, компиляция библиотеки libmp3lame для Android с помощью Android NDK очень легко на самом деле.

  • скачать Android NDK (также вам нужны Android SDK и Eclipse с плагином ADT) и создать простой проект.
  • создайте каталог под названием "jni" в каталоге проекта.
  • загрузить источники lame, извлечь, скопировать все источники из каталога libmp3lame в jni-каталог. Также скопируйте lame.h, который находится в каталоге include из хромых источников.
  • создать 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 autotools, Makefile.am, Makefile.in, libmp3lame_vc8.vcproj, logoe.ico, depcomp, папки i386, vector.
  • отредактировать файл jni/utils.h и заменить определение extern ieee754_float32_t fast_log2(ieee754_float32_t x);с этим extern float fast_log2(float x);
  • перейдите в корневую директорию вашего проекта Android и запустите $pathtoandroidndk/ndk-build, и все будет готово, вы скомпилируете limp3lame.so.

Кроме того, для вас может быть интересен следующий вопрос о SO, поскольку он касается некоторых проблем после компиляции lame для Android:

Ответ 2

Вышеупомянутое решение работало для меня, кроме:

  • не удалять каталог vector из исходного каталога
  • вы можете избавиться от предупреждений компиляции, добавив флаг компилятора: LOCAL_CFLAGS = -DSTDC_HEADERS