小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Android多媒體框架

 hewii 2022-09-30 發(fā)布于上海

一、Android多媒體框架歷史回顧

  • Android 1.0 ->Packet video - Open core

  • Android 1.6 ->Open core 2.0

  • Android 2.0 ->StageFright

  • Android 2.1 ->StageFright

  • Android 3.0 ->增強(qiáng)版StageFright

  • Android 4.1 ->支持編解碼功能

  • Android 5.0->增加MediaSession 和MediaController功能

二、多媒體架構(gòu)圖

在AOSP中,多媒體相關(guān)代碼主要在av/media和base/media兩個(gè)目錄。其中base/media中重點(diǎn)在其jni目錄,這里面就是libmedia_jni.so的代碼,也就是Java層多媒體API對(duì)應(yīng)的JNI模塊。av/media中包含了Android多媒體服務(wù)的具體實(shí)現(xiàn),包含了MediaPlayerService、Stagefright引擎等。

Java層API通過(guò)JNI調(diào)用Native層(libmedia_jni.so),Native層通過(guò)Binder IPC調(diào)用到相關(guān)Service進(jìn)程,獲取相關(guān)服務(wù),而Service進(jìn)程通過(guò)Open MAX調(diào)用硬件層實(shí)現(xiàn)

下面這張圖是AOSP官網(wǎng)中展示的多媒體架構(gòu)圖
android多媒體架構(gòu)

三、java 和jni

1、java層API

base/media/java目錄中包含了全部的多媒體模塊API,包含了我們熟悉的MediaPlayer、MediaRecorder、MediaCodec等。這些API在import的時(shí)候,都會(huì)開(kāi)始加載libmedia_jni.so,并注冊(cè)native方法映射。

2、Native層 jni

在base/media/jni/android_media_MediaPlayer.cpp中定義了libmedia_jni.so的JNI_OnLoad方法,在方法中注冊(cè)了整個(gè)多媒體API需要的native方法映射。

在Native層一般會(huì)創(chuàng)建一個(gè)與Java層同名的對(duì)象來(lái)一一對(duì)應(yīng),兩個(gè)對(duì)象互相持有引用,借助JNI來(lái)交互。在Native的實(shí)現(xiàn)中,會(huì)通過(guò)Binder IPC向指定的Service進(jìn)程獲取到一個(gè)Client,通過(guò)Client向服務(wù)進(jìn)程請(qǐng)求分配一個(gè)實(shí)現(xiàn)的實(shí)例,然后應(yīng)用進(jìn)程使用該實(shí)例完成對(duì)應(yīng)的功能。

四、服務(wù)層進(jìn)程

上面提到的MediaPlayerService、Stagefright引擎等都是運(yùn)行在獨(dú)立的進(jìn)程上,應(yīng)用進(jìn)程通過(guò)Binder IPC來(lái)與服務(wù)進(jìn)程進(jìn)行交互,Bilder IPC代碼位于av/media/libmedia目錄中。

在7.0時(shí),為了安全考慮,將整個(gè)多媒體服務(wù)進(jìn)程拆分成多個(gè)進(jìn)程,每個(gè)功能都擁有獨(dú)立的進(jìn)程。
多媒體進(jìn)程

五、硬件集成層OpenMax

OpenMax全稱是Open Media Acceleration,是一個(gè)免費(fèi)的多媒體API標(biāo)準(zhǔn),提供了音頻視頻等常用處理操作的接口,是對(duì)硬件功能的抽象,減少了應(yīng)用層適配硬件的復(fù)雜度。
對(duì)于應(yīng)用層來(lái)說(shuō),只需要調(diào)用OpenMAX對(duì)應(yīng)功能的API即可,具體SOC芯片上的實(shí)現(xiàn)無(wú)需關(guān)心。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多