国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

第19課 在Android環(huán)境中使用FFmpeg和openCV進(jìn)行開(kāi)發(fā)的一般步驟

這篇具有很好參考價(jià)值的文章主要介紹了第19課 在Android環(huán)境中使用FFmpeg和openCV進(jìn)行開(kāi)發(fā)的一般步驟。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

在上節(jié)課,根據(jù)模板文件我們對(duì)在Android環(huán)境中使用FFmpeg和openCV進(jìn)行開(kāi)發(fā)有了一個(gè)初步的體驗(yàn),這節(jié)課,我們來(lái)具體看一下其工作流程。

1.程序的入口

與VS2013程序開(kāi)發(fā)類似,Android程序開(kāi)發(fā)也有一個(gè)入口,在這個(gè)模板中,它的入口文件是MainActivity.java,具體路徑是:E:\jPro\demo\src\com\example\demo\MainActivity.java。我們打開(kāi)MainActivity.java,會(huì)看到項(xiàng)目的主類:public class MainActivity extends Activity {},這個(gè)就是程序的入口了,與VS2013開(kāi)發(fā)類似,在這個(gè)類中我們可以定義各種變量,也可以定義各種方法。其中的onCreate()函數(shù)類似于MFC中的OnInitDialog()函數(shù),會(huì)在界面初始化完成后執(zhí)行。

protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		 formatBtn=(Button)findViewById(R.id.formatBtn);	
		 codecBtn=(Button)findViewById(R.id.codecBtn);	
		 filterBtn=(Button)findViewById(R.id.filterBtn);	
		 configBtn=(Button)findViewById(R.id.configBtn);
		 msgTxt=(TextView)findViewById(R.id.msgTxt);
		 msgTxt.setMovementMethod(ScrollingMovementMethod.getInstance());		
		
	}

2.為了能使用FFmpeg和openCV的相關(guān)功能,我們需要先把.so動(dòng)態(tài)鏈接庫(kù)加載進(jìn)來(lái)并定義四個(gè)與C++有關(guān)的native函數(shù),這四個(gè)函數(shù)在demo.cpp中實(shí)現(xiàn)并被java調(diào)用。

static {		
		System.loadLibrary("opencv_java3");
		System.loadLibrary("x264.161");
		System.loadLibrary("avcodec");
		System.loadLibrary("avdevice");
		System.loadLibrary("avfilter");
		System.loadLibrary("avformat");
		System.loadLibrary("avutil");
		System.loadLibrary("postproc");
		System.loadLibrary("swresample");
		System.loadLibrary("swscale");
		System.loadLibrary("demo");
	}
	
	
	public native String avformatinfo();   
	public native String avcodecinfo();    
	public native String avfilterinfo();    
	public native String configurationinfo();

3.通過(guò)按鈕調(diào)用相關(guān)函數(shù)

雙擊打開(kāi)布局文件,路徑為:/demo/res/layout/activity_main.xml。

第19課 在Android環(huán)境中使用FFmpeg和openCV進(jìn)行開(kāi)發(fā)的一般步驟,C++,opencv,ffmpeg,android,ffmpeg,opencv

雙擊其中的config按鈕會(huì)看到configBtn單擊時(shí)會(huì)觸發(fā)名為Config的java方法

<Button
        android:id="@+id/configBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/filterBtn"
        android:layout_alignBottom="@+id/filterBtn"
        android:layout_alignRight="@+id/formatBtn"
        android:onClick="config"
        android:text="Config" />
    
     />

而名為Config的java方法則位于MainActivity.java中,而且調(diào)用了一個(gè)名為configurationinfo()的C++ native函數(shù)。

public void config(View view){ 
	msgTxt.setText(configurationinfo());
}
	

4.demo.cpp中的configurationinfo()函數(shù)則是通過(guò)下面這種方式被java調(diào)用執(zhí)行的。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-801078.html

JNIEXPORT jstring JNICALL Java_com_example_demo_MainActivity_configurationinfo(
		JNIEnv *env, jobject obj) {
	char info[10000] = { 0 };
	//av_register_all();
	sprintf(info, "%s\n", avcodec_configuration());
	//printf("%s", info);
	return env->NewStringUTF(info);
}

到了這里,關(guān)于第19課 在Android環(huán)境中使用FFmpeg和openCV進(jìn)行開(kāi)發(fā)的一般步驟的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Android開(kāi)發(fā)配置OpenCV環(huán)境詳細(xì)指南

    Android開(kāi)發(fā)配置OpenCV環(huán)境詳細(xì)指南 在進(jìn)行Android開(kāi)發(fā)時(shí),我們經(jīng)常需要使用圖像處理庫(kù)來(lái)實(shí)現(xiàn)各種功能。其中,OpenCV是一個(gè)強(qiáng)大且廣泛應(yīng)用的開(kāi)源計(jì)算機(jī)視覺(jué)庫(kù)。本文將詳細(xì)介紹如何在Android開(kāi)發(fā)環(huán)境中配置OpenCV,并附帶相應(yīng)的源代碼和說(shuō)明。 步驟一:下載OpenCV庫(kù)文件 首先,我

    2024年02月08日
    瀏覽(28)
  • Clion 使用ffmpeg 學(xué)習(xí)1 開(kāi)發(fā)環(huán)境配置

    Clion 使用ffmpeg 學(xué)習(xí)1 開(kāi)發(fā)環(huán)境配置

    在視頻處理和多媒體應(yīng)用程序開(kāi)發(fā)中,F(xiàn)Fmpeg 是一個(gè)強(qiáng)大的開(kāi)源工具,它提供了處理音頻和視頻的豐富功能。CLion 是一款受歡迎的跨平臺(tái)集成開(kāi)發(fā)環(huán)境(IDE),它提供了強(qiáng)大的代碼編輯和調(diào)試工具。 本文章介紹在CLion下配置FFmpeg開(kāi)發(fā)環(huán)境的方法。 windows10 已安裝Clion 官網(wǎng)入口:

    2024年02月10日
    瀏覽(17)
  • Android 環(huán)境下OpenCV使用-- 環(huán)境搭建(一)

    Android 環(huán)境下OpenCV使用-- 環(huán)境搭建(一)

    1、OpenCV SDK下載 openCv官網(wǎng)下載 2、Android Studio 創(chuàng)建 C++ 工程 3、openCV的so庫(kù) 加載項(xiàng)目中 src-main目錄下新建 jniLibs 下載的openCv的sdk的 opencv-4.1.0-android-sdkOpenCV-android-sdksdknativelibs目錄對(duì)應(yīng)平臺(tái)的so庫(kù)復(fù)制進(jìn)來(lái) 4、加載頭文件 將sdk目錄下邊的頭文件目錄 include的頭文件加載到項(xiàng)目中

    2024年02月15日
    瀏覽(14)
  • 使用 Clojure 進(jìn)行 OpenCV 開(kāi)發(fā)簡(jiǎn)介

    使用 Clojure 進(jìn)行 OpenCV 開(kāi)發(fā)簡(jiǎn)介

    從 OpenCV 2.4.4 開(kāi)始,OpenCV 支持使用與 Android 開(kāi)發(fā)幾乎相同的接口進(jìn)行桌面 Java 開(kāi)發(fā)。 Clojure?是由 Java 虛擬機(jī)托管的一種現(xiàn)代 LISP 方言,它提供了與底層 JVM 的完全互操作性。這意味著我們甚至應(yīng)該能夠使用 Clojure REPL(Read Eval Print Loop)作為底層 OpenCV 引擎的交互式可編程接口

    2024年01月16日
    瀏覽(18)
  • 利用ffmpeg和opencv進(jìn)行視頻的解碼播放

    引子 OpenCV中有自己的用于處理圖片和視頻的類VideoCapture,可以很方便的讀入文件和顯示。 現(xiàn)在視頻數(shù)據(jù)流是ffmpeg解碼h264文件得到的,由于要依賴該數(shù)據(jù)源進(jìn)行相應(yīng)的后續(xù)處理,所以需要將ffmpeg中得到的數(shù)據(jù)緩存轉(zhuǎn)換成可以被OpenCV處理的Mat類對(duì)象。 ffmpeg介紹 FFmpeg是一個(gè)開(kāi)源

    2024年02月13日
    瀏覽(30)
  • Android項(xiàng)目引入OpenCV和FFmpeg

    Android項(xiàng)目引入OpenCV和FFmpeg

    因?yàn)楫呍O(shè)項(xiàng)目涉及在安卓手機(jī)上處理音視頻,需要使用OpenCV和FFmpeg庫(kù),所以前段時(shí)間一直在找Android如何引入OpenCV和FFmpeg,相關(guān)教程在網(wǎng)上可以搜到很多,但因?yàn)榻坛叹帉?xiě)的時(shí)間都很久,很多都存在問(wèn)題。本文以O(shè)pencv-4.5.1和FFmpeg-4.4版本為例,記錄下Android項(xiàng)目引入兩個(gè)音視頻庫(kù)

    2024年02月03日
    瀏覽(22)
  • opencv+ffmpeg環(huán)境(ubuntu)搭建全面詳解

    opencv+ffmpeg環(huán)境(ubuntu)搭建全面詳解

    1.1它們之間的聯(lián)系 我們知道opencv主要是用來(lái)做圖像處理的,但也包含視頻解碼的功能,而在視頻解碼部分的功能opencv是使用了ffmpeg。所以它們都是可以處理圖像和視頻的編解碼,我個(gè)人感覺(jué)兩個(gè)的側(cè)重點(diǎn)不一樣。 1.2它們之間的區(qū)別 這就要提上面我所說(shuō)的它們的側(cè)重點(diǎn)是不一

    2024年02月15日
    瀏覽(17)
  • Ubuntu環(huán)境下C++使用onnxruntime和Opencv進(jìn)行YOLOv8模型部署

    Ubuntu環(huán)境下C++使用onnxruntime和Opencv進(jìn)行YOLOv8模型部署

    目錄 環(huán)境配置 系統(tǒng)環(huán)境 項(xiàng)目文件路徑? 文件環(huán)境 ?config.txt ?CMakeLists.txt type.names ?讀取config.txt配置文件 修改圖片尺寸格式 讀取缺陷標(biāo)志文件 生成缺陷隨機(jī)顏色標(biāo)識(shí) 模型推理 推理結(jié)果獲取 缺陷信息還原并顯示 總代碼 Ubuntu18.04 onnxruntime-linux-x64 1.12.1:https://github.com/microsof

    2024年01月17日
    瀏覽(24)
  • VSCode使用docker環(huán)境進(jìn)行開(kāi)發(fā)

    VSCode使用docker環(huán)境進(jìn)行開(kāi)發(fā)

    為什么要使用使用docker環(huán)境進(jìn)行開(kāi)發(fā)? 1、切換環(huán)境時(shí),只需要切換連接的鏡像; 2、在不同系統(tǒng)進(jìn)行開(kāi)發(fā)時(shí),均可以連接一個(gè)標(biāo)準(zhǔn)鏡像,從而統(tǒng)一開(kāi)發(fā)環(huán)境; 3、純凈開(kāi)發(fā)環(huán)境,本機(jī)只需簡(jiǎn)單安裝vscode 如何搭建docker服務(wù)? 前提需要在本地安裝docker,打開(kāi)終端執(zhí)行 docker versi

    2024年02月16日
    瀏覽(24)
  • golang 使用 gomobile進(jìn)行 Android 開(kāi)發(fā)

    golang 使用 gomobile進(jìn)行 Android 開(kāi)發(fā)

    build gomobile成功后會(huì)在$GOPATH/bin目錄生成gomobile可執(zhí)行程序 初始化環(huán)境,自動(dòng)下載安裝依賴 若提示未找到ndk,根據(jù)提示的路徑把ndk包復(fù)制過(guò)去即可 執(zhí)行bind命令,后面跟上go代碼所在的目錄 目錄結(jié)構(gòu)如下圖(包名分別為test和tree) 執(zhí)行完命令后會(huì)在當(dāng)前目錄下生成一個(gè)arr包和

    2024年02月07日
    瀏覽(21)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包