android ktv 开发过程5-android调用ffmpeg成功
2011-04-25 16:31
531 查看
上贴虽然失败,但是也有收获。
上贴失败的原因是和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信息。^^
相关文章推荐
- android ktv 开发过程5-android调用ffmpeg成功
- Android开发过程中so调用出现的常见问题分析
- android ktv 开发过程2
- android ktv 开发过程3-undefined reference to `img_convert'
- android ktv 开发过程4-android 使用ffmpeg
- Android Light开发(二) 通知灯调用过程
- Android开发:安装NDK,移植OpenCV2.3.1,JNI调用OpenCV全过程
- android ktv 开发过程6-undefined reference to `parse_number_or_die' 。。。。
- OpenCV4Android开发之旅(三)----Windows平台Eclipse、MinGW配置OpenCV2.4.4(C++接口调用) 全过程(附:MinGW编译OpenCV2.4.4)
- Android开发:安装NDK,移植OpenCV2.3.1,JNI调用OpenCV全过程
- android ktv 开发过程7-UnsatisfiedLinkError
- Android开发:安装NDK,移植OpenCV2.3.1,JNI调用OpenCV全过程
- 【转】Android开发:安装NDK,移植OpenCV2.3.1,JNI调用OpenCV全过程
- Android-调用本地方法传递数组参数/NDK-JNI开发实例(五)
- ios底层开发消息机制(二)消息调用过程
- Android开发中如何调用摄像头的功…
- Android系统HAL层开发,编译过程(hello)
- Android应用开发之调用系统Activity涉及的授权问题
- 在开发过程中使用Android返回键
- Android开发:java程序调用linux命令(高级)