android ktv 开发过程5-android调用ffmpeg成功
2016-02-29 23:41
579 查看
上贴虽然失败,但是也有收获。
上贴失败的原因是和ndk自己带的例子有关。备受折磨后,决定重新写个Ndk的程序。
用eclipse新建一个android工程,其实不是android工程也可以。
代码如下:
然后在工程的根目录下建个文件夹jni/,然后将ffmpeg的源代码copy到jni目录下,注意此处的源代码是经过前面编译ffmpeg时修剪完的源代码。然后新建一个Android.mk文件,文件内容为:
再在jni目录下建一个ffmpegtest.c文件。(注:.c文件的代码可以参考别的代码直接写,也可以先写出JAVA文件,然后用javah生成.h文件,然后再改写成.c文件,只保留.c问价即可)文件内容为:
然后使用nkd命令编译:
./ndk-build -C /home/s_jrvin/workspace/jnitest
在工程根目录下的Libs\armeabi\下生成了libjnitest.so。成功。。呵呵。。
然后把libffmpeg.so 拷到工程根目录下的Libs\armeabi\下。
运行 android程序,成功打印log信息。
上贴失败的原因是和ndk自己带的例子有关。备受折磨后,决定重新写个Ndk的程序。
用eclipse新建一个android工程,其实不是android工程也可以。
代码如下:
package com.sun; import android.app.Activity; import android.os.Bundle; public class JNITest extends Activity { public native int version(); /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); int x=version(); android.util.Log.d("version:",String.valueOf(x)); } static { System.loadLibrary("ffmpeg"); System.loadLibrary("jnitest"); } }
然后在工程的根目录下建个文件夹jni/,然后将ffmpeg的源代码copy到jni目录下,注意此处的源代码是经过前面编译ffmpeg时修剪完的源代码。然后新建一个Android.mk文件,文件内容为:
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := jnitest LOCAL_SRC_FILES := ffmpegtest.c LOCAL_C_INCLUDES += $(LOCAL_PATH)/ffmpeg/ $(LOCAL_PATH)/ffmpeg/libavutil/ $(LOCAL_PATH)/ffmpeg/libavcodec/ $(LOCAL_PATH)/ffmpeg/libavformat/ $(LOCAL_PATH)/ffmpeg/libavcodec/ $(LOCAL_PATH)/ffmpeg/libswscale/ LOCAL_LDLIBS +=-lffmpeg include $(BUILD_SHARED_LIBRARY)
再在jni目录下建一个ffmpegtest.c文件。(注:.c文件的代码可以参考别的代码直接写,也可以先写出JAVA文件,然后用javah生成.h文件,然后再改写成.c文件,只保留.c问价即可)文件内容为:
#include <jni.h> #include <stdio.h> JNIEXPORT jint JNICALL Java_com_sun_JNITest_version (JNIEnv *evn, jobject obj) { return (int)avcodec_version(); }
然后使用nkd命令编译:
./ndk-build -C /home/s_jrvin/workspace/jnitest
在工程根目录下的Libs\armeabi\下生成了libjnitest.so。成功。。呵呵。。
然后把libffmpeg.so 拷到工程根目录下的Libs\armeabi\下。
运行 android程序,成功打印log信息。
相关文章推荐
- FFmpeg在Android上的移植优化步骤
- Android中的线程
- android开发之路02(浅谈BroadcastReceiver)
- Android 2016新技术
- Android学习笔记之Broadcast Receiver
- android-studio 开发 和代理服务器
- Android工具类——LoadingUtils
- Android之ListView性能优化
- RN 与 Android 代码交互
- 自定义View基础与原理
- Android多线程断点下载
- android 零碎知识点收集
- Android XML解析
- Android Ⅰ
- Android资源
- [android] 保存文件到SD卡
- Android 自定义ViewGroup 实战篇 -> 实现FlowLayout
- android性能优化
- Android Studio的基本使用?
- Android开发之Activity的生命周期(一)