Lame MP3 Encoder для Android - PullRequest
20 голосов
/ 26 декабря 2011

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

Спасибо,

Ответы [ 2 ]

32 голосов
/ 26 декабря 2011

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

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

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

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

Тем не менее, компиляция библиотеки libmp3lame для Android с использованием Android NDK на самом деле очень проста.

  1. загрузить AndroidNDK (также вам нужен Android SDK и Eclipse с плагином ADT) и создайте простой проект.
  2. создайте каталог с именем "jni" в каталоге вашего проекта.
  3. загрузите исходные тексты, извлеките, скопируйте все источникииз каталога libmp3lame в каталог jni.Также скопируйте lame.h, который находится в каталоге include источников lame.
  4. создайте файл 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:

9 голосов
/ 30 августа 2012

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

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