Android 调用ffmpeg 播放器开发(一)

弄了半天的ffmpeg.so不能白弄啊,先不管具体流程,先google之  尝试调用动态库中的函数avformat_version()


先jni操作起来, 创建android工程,然后建个Jni.java专门放置调用方法  

package com.lz.myFFmpeg.commffmpeg;

public class Jni {
	static {
			System.loadLibrary("ffmpeg");
			System.loadLibrary("myFFmpeg");   
			System.out.println("loadLibrary myFFmpeg & ffmpeg");
	}
	
	public static native int getFFmpegVersion();
	
}


然后cygwin cd到工程bin下    执行 javah com.lz.myFFmpeg.commffmpeg.Jni   生成com_lz_myFFmpeg_commffmpeg_Jni.h   注意:  首先要生成了Jni.class文件了

放到 ffmpeg源码工程的jni下面   

创建 com_lz_myFFmpeg_commffmpeg_Jni.c

代码

#include "com_lz_myFFmpeg_commffmpeg_Jni.h"
#include "../libavformat/Avformat.h"
JNIEXPORT jint JNICALL Java_com_lz_myFFmpeg_commffmpeg_Jni_getFFmpegVersion
  (JNIEnv *env, jclass object)
  {
	return avformat_version();
  }


写Android.mk文件   替换之前编译ffmpeg的Android.mk

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_SRC_FILES := myffmpeg/com_lz_myFFmpeg_commffmpeg_Jni.c 

LOCAL_LDLIBS +=-lffmpeg
LOCAL_LDLIBS +=-llog
	
LOCAL_MODULE := myFFmpeg

LOCAL_C_INCLUDES := \
	$(LOCAL_PATH)/myffmpeg       \
	$(LOCAL_PATH)/libavformat       \
	
include $(BUILD_SHARED_LIBRARY)

再将libffmpeg.so放到  ndk环境下的lib文件夹中    我的是D:\android-ndk-r6b\platforms\android-5\arch-arm\usr\lib ,   注意里面有android-4 android-5 android-8很多个这样的版本,弄不清楚哪个的话每个里面都放个libffmpeg.so

 然后执行ndk-build     libmyFFmpeg.so 顺利生成

工程目录下创建libs/armeabi文件夹  将之前生成的libffmpeg.so ,libmyFFmpeg.so放到里面 。

ok   执行工程  

输出  

07-05 14:25:55.580: INFO/System.out(30511): loadLibrary myFFmpeg & ffmpeg
07-05 14:25:55.580: INFO/System.out(30511): version is 3540580

第一步顺利完成。 接下来要研究怎么玩ffmpeg了   O(∩_∩)O ~



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值