简单步骤:

一、下载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    := devchinaLOCAL_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.cinclude $(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

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

更多相关文章

  1. 一款常用的 Squid 日志分析工具
  2. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  3. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
  4. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  5. Android(安卓)NDK开发入门实例
  6. ELF文件查看利器之readelf用法
  7. 第二篇:实现uni-app和原生(Android)以及H5项目混编
  8. Mac Android(安卓)studio NDK 开发
  9. android轻量级开源缓存框架——ASimpleCache(ACache)源码分析(封装

随机推荐

  1. Android(安卓)组件化
  2. MTP 看不到软件创建的文件夹(Android端)
  3. 解决Android数据库锁的问题
  4. rmxp4droidV2.3 Final (Android版RMXP模
  5. Android(安卓)- JetPack
  6. android studio导入源码(来自github上下载
  7. Java.lang.UnsatisfiedLinkError :nativeS
  8. Android(安卓)8 原生app 和 第三方app 资
  9. Android中CMake的使用之四调用第三方库的
  10. 如何移植library到android(三)