ffmpeg播放器 android,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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值