废话不多说.

<1> : 首先可以从网上面下载lame库;

<2> : 新建一个android工程,如前面博客的添加所有的配置文件和jni目录;

<3> : 添加lame c文件库到jni中:解压后添加下面两个:

<4> : 根据<2> 中的文件目录,编写makefile文件:

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := lamejniLOCAL_SRC_FILES := ./libmp3lame/bitstream.c \./libmp3lame/encoder.c \./libmp3lame/fft.c \./libmp3lame/gain_analysis.c \./libmp3lame/id3tag.c \./libmp3lame/lame.c \./libmp3lame/mpglib_interface.c \./libmp3lame/newmdct.cLOCAL_SRC_FILES += ./libmp3lame/presets.c \./libmp3lame/psymodel.c \./libmp3lame/quantize_pvt.c \./libmp3lame/quantize.c \./libmp3lame/reservoir.c \./libmp3lame/set_get.c \./libmp3lame/tables.c \./libmp3lame/util.cLOCAL_SRC_FILES += ./libmp3lame/takehiro.c \./libmp3lame/vbrquantize.c \./libmp3lame/VbrTag.c \./libmp3lame/version.cLOCAL_SRC_FILES += ./libmp3lame/xmm_quantize_sub.cLOCAL_SRC_FILES += durianlame.c durianutils.cLOCAL_LDLIBS := -lloginclude $(BUILD_SHARED_LIBRARY)


durianlame.c :

#include "durianlame.h"#include "durianutils.h"#include "libmp3lame/lame.h"JNIEXPORT jstring JNICALL Java_com_durian_lamelib_DurianLame_getLameVersion  (JNIEnv *env, jobject jobj){char *version=get_lame_version();return (*env)->NewStringUTF(env, version);}

上面是获取lame库的版本,lame库对外基本上所有的接口都在它的lame.c中

应用层调用:

/**  * @Title: DurianLame.java* @Package com.durian.lamelib* @Description: TODO* @author zhibao.liu from durian organization* @date 2016-1-4 下午02:24:43* @version V1.0  */package com.durian.lamelib;/** * @ClassName: DurianLame * @Description: TODO * @author zhibao.liu Freelancer * @email [email protected] * @date 2016-1-4 下午02:24:43 * */public class DurianLame {    public native String getLameVersion();        static{        System.loadLibrary("lamejni");    }    }


lame.c的所有的接口都可以对应到应用层,可以参照上面一次类推.


代码code : http://pan.baidu.com/s/1kUjdzAf







更多相关文章

  1. Android(安卓)混淆 以及 java代码方式实现混淆配置
  2. 1. NDK Android(安卓)jni开发 2种so库编译 cmake(相机图片美化)
  3. Android积累之《Android(安卓)strings.xml文件定义字符串中的标
  4. Android应用开发相关下载资源(2014/12/14更新) 【转】
  5. Android(安卓)NDK r8b 和 FFmpeg 0.11.2 移植
  6. [Android]Fragment的应用/点击替换fragment应用实例
  7. 小多的Android入门教程系列---之1---贪吃蛇改进版
  8. android去权限反编译,签名,zipalign优化
  9. android使用ant自动打包(更改java文件中的属性值,批量自动生成)

随机推荐

  1. 详解Mysql导出数据的几种方式
  2. windows下傻瓜式安装mysql5.7
  3. MySQL因大事务导致的Insert慢实例分析
  4. CentOS 7中升级MySQL 5.7.23的坑与解决方
  5. MySQL服务器 IO 100%的分析与优化方案
  6. MySQL约束类型及举例介绍
  7. MySQL可视化工具Navicat的连接方法
  8. MySQL插入json问题
  9. CentOS 7.4 64位安装配置MySQL8.0的详细
  10. MySQL通过实例化对象参数查询实例讲解