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下载地址:http://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");
	}


 

例子代码下载:http://download.csdn.net/detail/hudan2714/4348971

模拟器出了点问题,未验证。如有问题,请留言。

 

目录
相关文章
|
6月前
ffmpeg 命令提取音视频数据-ffmpeg导出h265裸流-ffmpeg导出h264裸流
ffmpeg 命令提取音视频数据-ffmpeg导出h265裸流-ffmpeg导出h264裸流
176 0
|
编解码 Ubuntu 编译器
Qt开发笔记之编码x264码流并封装mp4(四):mp4v2库的介绍和windows平台编译
Qt开发笔记之编码x264码流并封装mp4(四):mp4v2库的介绍和windows平台编译
Qt开发笔记之编码x264码流并封装mp4(四):mp4v2库的介绍和windows平台编译
|
5月前
|
数据管理 Python 内存技术
python WAV音频文件处理—— (2)处理PCM音频-- waveio包
python WAV音频文件处理—— (2)处理PCM音频-- waveio包
87 15
|
编解码 编译器 C语言
【FFmpeg】ffmpeg 命令查询一 ( 版本 | 编译配置 | 复用格式 | 编解码器 )(一)
【FFmpeg】ffmpeg 命令查询一 ( 版本 | 编译配置 | 复用格式 | 编解码器 )(一)
2250 0
【FFmpeg】ffmpeg 命令查询一 ( 版本 | 编译配置 | 复用格式 | 编解码器 )(一)
|
Java
Java实现将视频转换为mp4格式
Java实现将视频转换为mp4格式
1438 0
|
存储 传感器 编解码
Qt开发笔记之编码x264码流并封装mp4(三):Qt使用x264库对.yuv文件编码为.h264文件
Qt开发笔记之编码x264码流并封装mp4(三):Qt使用x264库对.yuv文件编码为.h264文件
Qt开发笔记之编码x264码流并封装mp4(三):Qt使用x264库对.yuv文件编码为.h264文件
|
Linux C语言 Windows
Qt开发笔记之编码x264码流并封装mp4(二):windows平台x264添加mp4支持,gpac库的介绍与编译
Qt开发笔记之编码x264码流并封装mp4(二):windows平台x264添加mp4支持,gpac库的介绍与编译
Qt开发笔记之编码x264码流并封装mp4(二):windows平台x264添加mp4支持,gpac库的介绍与编译
|
API 语音技术 Python
Python 技术篇-用base64库对音频、图片等文件进行base64编码和解码实例演示
Python 技术篇-用base64库对音频、图片等文件进行base64编码和解码实例演示
985 0
Python 技术篇-用base64库对音频、图片等文件进行base64编码和解码实例演示
【FFmpeg】ffmpeg 命令查询一 ( 版本 | 编译配置 | 复用格式 | 编解码器 )(四)
【FFmpeg】ffmpeg 命令查询一 ( 版本 | 编译配置 | 复用格式 | 编解码器 )(四)
282 0
【FFmpeg】ffmpeg 命令查询一 ( 版本 | 编译配置 | 复用格式 | 编解码器 )(四)
【FFmpeg】ffmpeg 命令查询一 ( 版本 | 编译配置 | 复用格式 | 编解码器 )(二)
【FFmpeg】ffmpeg 命令查询一 ( 版本 | 编译配置 | 复用格式 | 编解码器 )(二)
292 0
【FFmpeg】ffmpeg 命令查询一 ( 版本 | 编译配置 | 复用格式 | 编解码器 )(二)