Android Studio2.2.3 通过JNI引用ffmpeg库小结
修改步骤:
首先通过NDK14编译出libffmpeg.so ,将include目录取出
通过AS建立基于jni的工程项目,将include目录放到cpp下;创建jniLibs/armeabi目录,将libffmpeg.so放到里边
3.配置CMakeLists.txt
添加如下:
#add the ffmpeg libinclude_directories(${CMAKE_CURRENT_SOURCE_DIR}/src/main/cpp/include)add_library(ffmpeg-lib SHARED IMPORTED )set_target_properties(ffmpeg-lib PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/src/main/jniLibs/armeabi/libffmpeg.so)
target_link_libraries( native-lib ffmpeg-lib #ffmpeg lib android #use the android log lib ${log-lib} )
4.配置build.gradle
主要添加arguments 和 ndk的配置
externalNativeBuild {cmake {cppFlags " "arguments '-DANDROID_TOOLCHAIN=clang','-DANDROID_STL=gnustl_static'}ndk {abiFilters 'armeabi'} }
5.native_lib.cpp
#include <jni.h>
#include <string>
#include <android/log.h>
extern "C"
{
#include "libavcodec/avcodec.h"
#include "libavformat/avformat.h"
#include "libswscale/swscale.h"
#include "libavutil/imgutils.h"
#include "libavutil/avutil.h"
}
#define LOG_TAG "MyTagFFmpeg"
#define ALOGE(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)
extern "C"
jstring
Java_letv_com_myffmpeg_MainActivityFFmpeg_stringFromJNI(
JNIEnv *env,
jobject /* this */) {
std::string hello = "Hello ,this is the first ffmpeg test !";
ALOGE("%s",hello.c_str());
char info[10000] = { 0 };
sprintf(info, "%s\n", avcodec_configuration());
hello += info;
return env->NewStringUTF(hello.c_str());
}
That's all.
转载于:https://blog.51cto.com/zyg0227/1947097
Android Studio2.2.3 通过JNI引用ffmpeg库小结相关推荐
- android studio2.3.2增加jni
2019独角兽企业重金招聘Python工程师标准>>> 最近试了下andorid studio增加jni,网上的方式说的太复杂了,这里记录下 android studio2.3版本增 ...
- android jni deletelocalref,JNI 引用, DeleteLocalRef使用场景详解
局部引用: JNI 函数内部创建的 jobject对象及其子类( jclass. jstring. jarray等) 对象都是局部引用,它们在 JNI 函数返回后无效: 一般情况下,我们应该依赖 JV ...
- 【Android NDK 开发】JNI 引用 ( 局部引用 | 局部引用作用域 | 局部引用产生 | 局部引用释放 | 代码示例)
文章目录 I . JNI 引用数据类型 II . JNI 引用 与 指针 III . 局部引用 作用域 IV . 局部引用 产生 与 释放 V . 局部引用 代码示例 I . JNI 引用数据类型 1 ...
- android prebuild第三方so库,Android NDK编译本地文件以及引用第三方so文件
在需要引入第三方的so文件的情况下,怎样使用NDK编译本地代码? 1.新建jni文件夹,将你要编译源码的文件以及需要引入的so文件复制到jni文件目录下 2.编写android.mk文件,首先将你的将 ...
- FFmpeg系列(二)-Android项目引入FFmpeg库播放视频
在系列一中讲述了如何编译FFmpeg的源码,现在就在Android项目中引入我们编译出来的库,并实现播放一个在线视频的功能 新建Android工程 新建一个支持ndk的Android工程,在AS中新建 ...
- Android Studio2.2 CMAKE高效NDK开发
转自:http://www.it165.net/pro/html/201611/76734.html 前言 之前,每次需要边写C++代码的时候,我的内心都是拒绝的. 1. 它没有代码提示!!!这意味着 ...
- Android Studio NKD开发之 FFmpeg库的引入--简单播放器(主要验证是否正确引入ffmpeg库)
缘由 之前一直在linux系统下编译除了ffmpeg的动态库,但是一直没用上,刚好今天实验上,本篇文章参考了http://blog.csdn.net/nothingl3/article/details ...
- 简单的Android视频转码器[1]:把FFMpeg移植到Android
1 项目介绍 1.1 项目介绍 FFMpeg是做音视频开发的同学都会接触的一个开源项目,现将其移植到Android上,写一个简单的视频格式转码工具,作为自己Android jni开发的一个入门学习和A ...
- android jni调用so库
今天,讲讲android studio 使用jni调用其他so库的使用. 首先说一下在网上查找资料时,对于调用第三方so库,有人说有两种方法: 1. 对于so库的API符合JNI格式(即使用ja ...
最新文章
- h5 移动端 关于监测切换程序到后台或息屏事件和visibilitychange的使用
- bootstrap-less源码分析:行和列
- html下拉框由后端,select下拉框通过ajax获取后台的值
- Unicode 转换 ASCII,ASCII 转换 Unicode 在线网站工具
- Docker(二)-在Docker中部署Nginx实现负载均衡(视频)
- 网站pc端分享QQ好友,空间,微博
- springboot 控制台程序读取配置文件(原创)
- 每天5分钟玩转kubernetes_DNS 访问 Service 每天5分钟玩转 Docker 容器技术(138)
- 不要再问我this的指向问题了
- ‘gbk‘ codec can‘t decode byte 0xb9 in position 58: illegal multibyte sequence
- 可视化编程语言是什么意思
- 三级java_java三级(最全的题库).doc
- python 网格搜索_Python机器学习笔记:Grid SearchCV(网格搜索)
- Android arm64-v8a、armeabi-v7a、armeabi、x86详解
- 吉林大学计算机网络考研知识点整理
- 对话Huobi Prime首发项目TOP:李林80%的时间都在问项目能否落地
- 今天看到一篇文章,收藏了很多大牛的博客
- S3C2440系统中断(转)
- Apache安装配置(Linux)-有手就行
- ushort mysql,C# NModbus4读取寄存器ushort[]
热门文章
- c 中ajax不起作用,Jquery AJAX調用:$(this)在成功后不起作用
- python中isinstance(3、object)_Python中为什么推荐使用isinstance来进行类型判断?而不是type...
- RabbitMQ (二)docker安装rabbitMQ
- java tm 安装在哪里,安装以及配置Java环境
- 简单的错觉画_一看就错?眼睛厉害还是大神画的厉害!
- 单应矩阵(Homography)基本概念和代码测试
- 无刷电机真威武,一通操作猛如虎
- 第十六届全国大学生智能车竞赛华南赛区竞赛事宜的通知
- 什么?欧洲也有个恩智浦杯?
- Several ports (8005, 8080, 8009) required by Tomcat v5.5 Server at localhost are already in use.....