閱讀618 返回首頁    go 阿裏雲 go 技術社區[雲棲]


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)


 

注意要引入jni下所有的.c文件

 

六、操作如圖:

 

七、簡單調用代碼:

#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

  上一篇:go Android兩種不同的方法去實現圖像的放大與縮小(很有幫助)
  下一篇:go lame音頻壓縮解碼(一)Lame知識小解