cmake项目配置

# For more information about using CMake with Android Studio, read the
# documentation: https://d.android.com/studio/projects/add-native-code.html# Sets the minimum version of CMake required to build the native library.cmake_minimum_required(VERSION 3.4.1)#设置头文件路径,头文件路径相对Cmake文件来确定
include_directories(src/main/cpp/include)set(FF ${CMAKE_CURRENT_SOURCE_DIR}/libs/${ANDROID_ABI})add_library(avcodec SHARED IMPORTED)
set_target_properties(avcodec PROPERTIES IMPORTED_LOCATION ${FF}/libavcodec.so)add_library(avformat SHARED IMPORTED)
set_target_properties(avcodec PROPERTIES IMPORTED_LOCATION ${FF}/libavformat.so)add_library(avutil SHARED IMPORTED)
set_target_properties(avcodec PROPERTIES IMPORTED_LOCATION ${FF}/libavutil.so)add_library(swscale SHARED IMPORTED)
set_target_properties(swscale PROPERTIES IMPORTED_LOCATION ${FF}/libswscale.so)add_library(swresample SHARED IMPORTED)
set_target_properties(swresample PROPERTIES IMPORTED_LOCATION ${FF}/libswresample.so)add_library(avfilter SHARED IMPORTED)
set_target_properties(avfilter PROPERTIES IMPORTED_LOCATION ${FF}/libavfilter.so)add_library( # Sets the name of the library.设置库的名称native-lib# Sets the library as a shared library. 将库设置为共享库SHARED# Provides a relative path to your source file(s).提供到源文件的相对路径src/main/cpp/native-lib.cpp)find_library( # Sets the name of the path variable.log-liblog )target_link_libraries( # Specifies the target library.native-libandroid${CMAKE_CURRENT_SOURCE_DIR}/libs/${ANDROID_ABI}/libavcodec.so${CMAKE_CURRENT_SOURCE_DIR}/libs/${ANDROID_ABI}/libavfilter.so${CMAKE_CURRENT_SOURCE_DIR}/libs/${ANDROID_ABI}/libavformat.so${CMAKE_CURRENT_SOURCE_DIR}/libs/${ANDROID_ABI}/libavutil.so${CMAKE_CURRENT_SOURCE_DIR}/libs/${ANDROID_ABI}/libswresample.so${CMAKE_CURRENT_SOURCE_DIR}/libs/${ANDROID_ABI}/libswscale.so# Links the target library to the log library# included in the NDK.${log-lib} )

build.gradle

添加jni用到库所在的路径

plugins {id 'com.android.application'
}android {compileSdkVersion 30buildToolsVersion "30.0.2"defaultConfig {applicationId "com.example.ffmpegplayer"minSdkVersion 19targetSdkVersion 30versionCode 1versionName "1.0"testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"externalNativeBuild {cmake {cppFlags "-std=c++11"}ndk{abiFilters"armeabi-v7a"}}sourceSets{main{jniLibs.srcDirs=['libs']}}}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}}externalNativeBuild {cmake {path "src/main/cpp/CMakeLists.txt"version "3.10.2"}}compileOptions {sourceCompatibility JavaVersion.VERSION_1_8targetCompatibility JavaVersion.VERSION_1_8}
}dependencies {implementation 'androidx.appcompat:appcompat:1.2.0'implementation 'com.google.android.material:material:1.2.1'implementation 'androidx.constraintlayout:constraintlayout:2.0.4'testImplementation 'junit:junit:4.+'androidTestImplementation 'androidx.test.ext:junit:1.1.2'androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}

读写权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

权限(版本)

【音视频安卓开发 (一)】AndroidStudio项目配置权限、jni库路径、ABI、Cmake相关推荐

  1. 【音视频安卓开发 (四)】AndroidStudio项目配置权限、jni库路径、ABI

    读写权限 权限(版本) 添加jni用到库所在的路径 设置cmake和NDK参数 cmake项目配置

  2. AndroidStudio项目配置第三方libray库

    这几天在做项目的时候,团队同事为了方便开发新功能,给我们的AndroidStudio项目添加了一个依赖库(library),同事在提交代码到SVN的时候,因为设置了提交代码屏蔽管理,没有把.Gradl ...

  3. 【安卓开发】AndroidStudio项目提交到github最详细步骤

    在使用studio开发的项目过程中有时候我们想将项目发布到github上,以前都是用一种比较麻烦的方式(cmd)进行提交,最近发现studio其实是自带这种功能的,终于可以摆脱命令行了. 因为自己也没 ...

  4. 【音视频安卓开发 (八)】OpenSLES播放音频步骤和接口讲解

    OpenSLES是安卓内部的音频播放和录音 初始化引擎 创建输出设备 配置PCM格式信息 初始化播放器 播放和缓冲队列 本文开源项目下载

  5. 【音视频安卓开发 (零)】用 Android NDK 编译 FFmpeg 与 X264

    下载相关构建和工具链 1.先下载NDK Google Android 2.在Windows端下载使用msys2,msys2支持Linux msys2 安装相关源,等待更新要很久.....慢慢等 pac ...

  6. 【音视频安卓开发 (三)】OpenGL ES 直接绘制YUV

    EGL OpenGL与窗口对应的的适配层,针对安卓平台的适配器. surface 交互到窗口显示

  7. 【音视频安卓开发 (七)】安卓视频播放窗口去掉标题栏、全屏、横屏

    java中的MainActivity初始化部分设置这些操作 //去掉标题栏supportRequestWindowFeature( Window.FEATURE_NO_TITLE);//全屏,隐藏状态 ...

  8. 【音视频安卓开发 (六)】Android GLSurfaceView播放视频

    GLSurfaceView渲染RGB的数据,利用双缓冲空间机制.取出缓冲地址,将要渲染的数据copy到缓冲地址. 获取Surface Java部分: SurfaceView控件设置到界面中显示 Sur ...

  9. 【音视频安卓开发 (五)】Android中获取音视频原始数据的方法

    一般取得原始数据的方法使用的camera setPreviewCallback

最新文章

  1. 探索--是测试的必须品
  2. thrust 学习笔记
  3. python中uniform randint_python生成随机数:uniform(), randint(), gauss(), expovariate()
  4. HTML5 标签、事件句柄属性以及浏览器兼容情况速查手册
  5. PHP 计算两个两个文件的相对路径
  6. jzoj3338-[NOI2013模拟]法法塔的奖励【权值线段树,线段树合并】
  7. c语言编程一个象棋游戏,急求:C语言编写的中国象棋游戏一个
  8. 深入了解VB中的变量和指针
  9. 调查显示:数据中心行业女性获得报酬比男性多
  10. Illustrator中文版教程,如何在 Illustrator 中添加文字?
  11. 【韩顺平 零基础30天学会Java】(第一阶段)(自用)
  12. 2019Java视频教程-玩转oracle
  13. 【控制理论】矩阵求逆引理推导及理解
  14. 清华2019最新AI发展报告出炉!400页干货,13大领域一文看懂
  15. 04 CoCos Creator-Please make sure java is installed and JAVA_HOME
  16. JQuery实现复选框CheckBox的全选、反选、提交操作
  17. java实现抛物线轨迹计算_JavaFX中抛物线轨迹的时间线
  18. java win10窗口启动假死_win10电脑任务栏和窗口假死怎么办_win10任务栏和窗口假死的解决方法...
  19. 六大设计原则之开闭原则
  20. anki计算机知识,「背书 刷题神器」 Anki 是应对考试的强力效率 buff

热门文章

  1. ejb构建_如何使用单例EJB和MBean构建和清除参考数据缓存
  2. Mockito“ thenReturn” vs Mockito“ thenAnswer”
  3. 有关有效企业测试的视频课程
  4. JDK 14中的常规,安全和确定性外部内存访问
  5. input发送a.jax_JAX-RS 2.0的新功能– @BeanParam批注
  6. 将旧对象装箱可自动关闭
  7. java8 默认方法_如何不使用Java 8默认方法
  8. 垃圾收集算法,垃圾收集器_您正在使用什么垃圾收集器?
  9. executor线程池框架_如何使用Java 5 Executor框架创建线程池
  10. java集合提取最小的日期_提取Java集合的元素-Java 8方法