ndk編譯android的lame庫

來源:互聯網
上載者:User

標籤:

1、lame c庫:

https://github.com/intervigilium/liblame

下載後解壓,進入目錄,terminal裡運行ndk-build即可

 

2、lame android庫

https://github.com/intervigilium/Lame4Android

需要引用上面編譯好的.so檔案

 

3、方法1裡的lame的源碼可能不是最新的,我們可以下載最新的lame
http://lame.sourceforge.net/download.php

a、解壓,複製lame-3.99.5/libmp3lame 到jni目錄裡,改名為lame

b、拷貝 lame.h (include目錄下),至jni/lame.h

c、建立jni/Android.mk,內容如下:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := lame
LOCAL_CLFAGS := -std=c99
LOCAL_LDLIBS := -llog

LOCAL_SRC_FILES := lame/bitstream.c lame/fft.c lame/id3tag.c lame/mpglib_interface.c lame/presets.c lame/quantize.c lame/reservoir.c lame/tables.c lame/util.c lame/VbrTag.c lame/encoder.c lame/gain_analysis.c lame/lame.c lame/newmdct.c lame/psymodel.c lame/quantize_pvt.c lame/set_get.c lame/takehiro.c lame/vbrquantize.c lame/version.c

include $(BUILD_SHARED_LIBRARY)

d、建立jni/Application.mk,內容如下

APP_ABI := armeabi armeabi-v7a arm64-v8a x86_64
APP_MODULES := lame
APP_CFLAGS += -DSTDC_HEADERS
#APP_ABI:=x86_64
#APP_PLATFORM := android-21

 

4、terminal裡運行ndk-build,編譯後的so檔案放在libs裡

說明:

Application.mk裡要加APP_CFLAGS += -DSTDC_HEADERS,不然會報錯undefined reference to `bcopy‘等錯誤

刪除非.c/.h檔案:GNU autotools, Makefile.am Makefile.in libmp3lame_vc8.vcproj logoe.ico depcomp, folders i386 等無用檔案。
編輯 jni/utils.h。把extern ieee754_float32_t fast_log2(ieee754_float32_t x);替換為extern float fast_log2(float x);。如果忘了替換,編譯時間會報出以下錯誤:
  1. [armeabi] Compile thumb  : mp3lame <= bitstream.c  
  2. In file included from jni/bitstream.c:36:0:  
  3. jni/util.h:574:5: error: unknown type name ‘ieee754_float32_t‘  
  4. jni/util.h:574:40: error: unknown type name ‘ieee754_float32_t‘  
  5. make.exe: *** [obj/local/armeabi/objs/mp3lame/bitstream.o] Error 1 

 

ndk編譯android的lame庫

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.