lame音頻壓縮解碼(二)之編譯事例Demo
簡單步驟:
一、下載lame存文件。
二、創建android工程後,解壓lame包,拷貝lame文件夾中的libmp3lame文件下的所有.c和.h文件到android工程的jni目錄下。
三、從lame包中的include文件夾中,拷貝 lame.h到jni目錄下。
四、定義natvie方法。
五、在jni目錄下,編寫android.mk文件。
六、進入工程的bin/classes目錄下,通過javah生成.h文件。
七、根據生成的.h文件,創建相應的devchina.c文件。調用lame中的c函數。
八、打開cywin,進入到工程目錄。執行ndk-build命令。
詳細圖形說明:
一、lame下載地址:https://download.csdn.net/detail/hudan2714/4348930
二、如圖:
說明:隻需要拷貝.c和.h文件。
三、
在include下拷貝lame.h。
四、(簡)
五、編寫.mk
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := devchina 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)
六、操作如圖:
七、簡單調用代碼:
#include <stdio.h> #include <jni.h> #include "lame.h" #include "com_devchina_lame_DevchinaActivity.h" JNIEXPORT jstring JNICALL Java_com_devchina_lame_DevchinaActivity_getLameVesion (JNIEnv * env, jobject obj) { return (env*)->NewStringUTF(env,get_lame_version()); }
八、如圖:
編譯時出現如上錯誤,需要修改util.h文件,如圖:
需要把ieee754_float32_t改成float即可。
然後,再執行ndk-build命令。生成.so文件。
記住在調用native函數時要加載動態庫:
static { System.loadLibrary("devchina"); }
例子代碼下載:https://download.csdn.net/detail/hudan2714/4348971
模擬器出了點問題,未驗證。如有問題,請留言。
最後更新:2017-04-02 16:47:34