2011-12-26 12 views
20

Voglio compilare il codificatore lame per Android. Come posso trovare le esercitazioni per Lame e la sua compilazione per la piattaforma Android.Lame MP3 Encoder compile per Android

Grazie,

+1

segui questo link http://developer.samsung.com/technical-doc/view.do? v = T000000090 – sonida

risposta

32

Ci usato per essere un buon blog post su come compilare zoppo per Android, ma per qualche motivo è stato offline per un po 'e disponibile solo su alcuni siti cinesi ingannevoli.

mi limiterò a copiare il contenuto di seguito:

porting compilazione codificatore lame di arco ARM Android utilizzando Android NDK

ero alla ricerca di un'applicazione codifica MP3 in Android Market, e trovato pochissimi, il motivo per cui Android non supporta la codifica mp3 è perché l'mp3 è una tecnologia brevettata. Un altro motivo è I indovina le persone preferiscono la programmazione Java e l'SDK Android piuttosto che il kit di sviluppo nativo Android .

Tuttavia la libreria di compilazione libmp3lame per Android che utilizza Android NDK è davvero molto semplice.

  1. scaricare Android NDK (inoltre è necessario Android SDK ed Eclipse con plug-in ADT) e creare un progetto semplice.
  2. creare la directory denominata "jni" nella directory del progetto.
  3. scaricare fonti lame, estrarre, copiare tutte le fonti dalla directory libmp3lame alla directory jni. Copia anche lame.h che si trova nella directory include delle fonti lame.
  4. crea il file jni/Android.mk. dovrebbe assomigliare a questo:
    • 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)
  5. pulite fonti zoppo, rimuovere ciò che resta da GNU autotools, Makefile.am, Makefile.in, libmp3lame_vc8.vcproj , logoe.ico, depcomp, cartelle i386, vector.
  6. Modifica file jni/utils.h, e sostituire la definizione extern ieee754_float32_t fast_log2(ieee754_float32_t x); con questo extern float fast_log2(float x);
  7. passare alla directory principale del tuo progetto Android ed eseguire $pathtoandroidndk/ndk-build e il gioco è fatto, avrete limp3lame.so compilato.

Inoltre, la seguente domanda sul SO potrebbe essere di interesse per voi, come si tratta con alcuni problemi dopo la compilazione zoppo per Android:

+1

1. Non rimuovere il floder vettoriale; 2. Qualche fonte include lame.h usando "lame.h" qualche fonte usando , quindi devi aggiungere -I./ flags in Android.mk –

+0

Come compilarlo come libreria statica che può essere usata con ffmpeg? – frankish

9

La soluzione di cui sopra ha funzionato per me tranne:

  • non eliminare il vector directory dalla directory di origine
  • si può sbarazzarsi delle avvertenze di compilazione con l'aggiunta di un flag di compilazione: LOCAL_CFLAGS = -DSTDC_HEADERS
Problemi correlati