欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android Studio引入FFmpeg的方法

 更新時間:2020年03月23日 14:03:07   作者:張雨明  
這篇文章主要介紹了Android Studio引入FFmpeg的方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

新建C++工程

新建

兩個externalNativeBuild

一個sourceSets(指定so路徑)

android {
 compileSdkVersion 29
 buildToolsVersion "29.0.3"
 defaultConfig {
 ...
 externalNativeBuild {
  cmake {
  cppFlags "-std=c++11 -frtti -fexceptions"
  abiFilters 'armeabi-v7a'
  }
 }
 sourceSets {
  main {
  jniLibs.srcDirs = ['src/main/jniLibs']
  }
 }
 }
 ...
 externalNativeBuild {
 cmake {
  path "src/main/cpp/CMakeLists.txt"
  version "3.10.2"
 }
 }
}

復制so和include文件

在這里插入圖片描述

編寫CMakeLists.txt

以下是默認值

cmake_minimum_required(VERSION 3.4.1)

add_library(native-lib
 SHARED
 native-lib.cpp
 #nativ-lib2.cpp 如果有其他cpp文件可以一并打包到native-lib中)

#查找系統(tǒng)的log庫,并賦值給變量log-lib
find_library(
 log-lib
 log)

#將上面log-lib變量里的庫連接到native-lib中
target_link_libraries(
 native-lib
 ${log-lib})

CMakeLists中添加FFmpeg頭文件路徑

#設置FFmpeg頭文件的路徑
include_directories(
 include#因為和CMakeLists.txt在同一級,所以直接寫include
)

CMakeLists中添加libavcodec.so

#定義一個變量avcodec
add_library(
 avcodec
 SHARED
 IMPORTED
)

#給avcodec這個變量賦值
set_target_properties(avcodec PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/../../main/jniLibs/${ANDROID_ABI}/libavcodec.so)

#將avcodec混合編譯到native-lib中
target_link_libraries(
 native-lib
 ${log-lib}
 avcodec
)

CMakeLists中添加全部的so

cmake_minimum_required(VERSION 3.4.1)

#設置FFmpeg頭文件的路徑
include_directories(
 include#因為和CMakeLists.txt在同一級,所以直接寫include
)

add_library(native-lib
 SHARED
 native-lib.cpp)

find_library(
 log-lib
 log)

#1.定義一個變量avcodec
add_library(
 avcodec
 SHARED
 IMPORTED
)
#給avcodec這個變量賦值
set_target_properties(avcodec PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/../../main/jniLibs/${ANDROID_ABI}/libavcodec-57.so)

#2.
add_library(
 avdevice
 SHARED
 IMPORTED
)
set_target_properties(avdevice PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/../../main/jniLibs/${ANDROID_ABI}/libavdevice-57.so)

#3.
add_library(
 avfilter
 SHARED
 IMPORTED
)
set_target_properties(avfilter PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/../../main/jniLibs/${ANDROID_ABI}/libavfilter-6.so)

#4.
add_library(
 avformat
 SHARED
 IMPORTED
)
set_target_properties(avformat PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/../../main/jniLibs/${ANDROID_ABI}/libavformat-57.so)

#5.
add_library(
 avutil
 SHARED
 IMPORTED
)
set_target_properties(avutil PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/../../main/jniLibs/${ANDROID_ABI}/libavutil-55.so)

#6.
add_library(
 postproc
 SHARED
 IMPORTED
)
set_target_properties(postproc PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/../../main/jniLibs/${ANDROID_ABI}/libpostproc-54.so)

#7.
add_library(
 swresample
 SHARED
 IMPORTED
)
set_target_properties(swresample PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/../../main/jniLibs/${ANDROID_ABI}/libswresample-2.so)

#8.
add_library(
 swscale
 SHARED
 IMPORTED
)
set_target_properties(swscale PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/../../main/jniLibs/${ANDROID_ABI}/libswscale-4.so)

#將avcodec混合編譯到native-lib中
target_link_libraries(
 native-lib
 ${log-lib}
 avcodec#1
 avdevice#2
 avfilter#3
 avformat#4
 avutil#5
 postproc#6
 swresample#7
 swscale#8
)

編寫測試函數(shù)

#include <jni.h>
#include <string>

extern "C" {
#include "libavcodec/avcodec.h"
}

extern "C" JNIEXPORT jstring JNICALL
Java_com_example_myffmpegcmd_MainActivity_stringFromJNI(
 JNIEnv *env,
 jobject /* this */) {
 std::string hello = "Hello from C++";
 return env->NewStringUTF(avcodec_configuration());
}

在這里插入圖片描述

總結

到此這篇關于Android Studio引入FFmpeg的文章就介紹到這了,更多相關Android Studio引入FFmpeg內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • android自定義等級評分圓形進度條

    android自定義等級評分圓形進度條

    這篇文章主要為大家詳細介紹了android自定義等級評分圓形進度條,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • ListView下拉列表控件使用方法詳解

    ListView下拉列表控件使用方法詳解

    這篇文章主要為大家詳細介紹了ListView下拉列表控件的使用方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • Android Accessibility 輔助功能簡單介紹

    Android Accessibility 輔助功能簡單介紹

    這篇文章主要介紹了Android Accessibility 輔助功能簡單介紹的相關資料,文字轉語音,觸覺反饋,手勢操作,軌跡球和手柄操作,需要的朋友可以參考下
    2016-11-11
  • 淺談Android Studio JNI生成so庫

    淺談Android Studio JNI生成so庫

    下面小編就為大家?guī)硪黄獪\談Android Studio JNI生成so庫。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • OkHttp原理分析小結

    OkHttp原理分析小結

    OkHttp 是 Square 公司開源的一款網(wǎng)絡框架,封裝了一個高性能的 http 請求庫,本文對OkHttp原理給大家詳細講解,感興趣的朋友跟隨小編一起看看吧
    2024-01-01
  • Android開發(fā)中RecyclerView組件使用的一些進階技講解

    Android開發(fā)中RecyclerView組件使用的一些進階技講解

    RecyclerView是Android 5.0以來新加入的一個組件,基本上全面優(yōu)于ListView,這里我們將來關注Android開發(fā)中RecyclerView組件使用的一些進階技講解:
    2016-06-06
  • Android 雙擊返回鍵退出程序的方法總結

    Android 雙擊返回鍵退出程序的方法總結

    這篇文章主要介紹了Android 雙擊返回鍵退出程序的方法總結的相關資料,需要的朋友可以參考下
    2017-06-06
  • android使用surfaceview+MediaPlayer播放視頻

    android使用surfaceview+MediaPlayer播放視頻

    這篇文章主要為大家詳細介紹了android使用surfaceview+MediaPlayer播放視頻,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • Android實現(xiàn)簡易計算器小程序

    Android實現(xiàn)簡易計算器小程序

    這篇文章主要為大家詳細介紹了Android實現(xiàn)簡易計算器小程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • android實現(xiàn)一鍵鎖屏和一鍵卸載的方法實例

    android實現(xiàn)一鍵鎖屏和一鍵卸載的方法實例

    這篇文章主要給大家介紹了關于android如何實現(xiàn)一鍵鎖屏和一鍵卸載的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2018-05-05

最新評論