色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

采用Android多媒體框架實(shí)現(xiàn)重力感應(yīng)

電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2018-10-23 10:26 ? 次閱讀

Android一詞的本義指“機(jī)器人”,同時(shí)也是Google于2007年11月5日宣布的基于Linux平臺(tái)的開源手機(jī)操作系統(tǒng)的名稱,該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,號(hào)稱是首個(gè)為移動(dòng)終端打造的真正開放和完整的移動(dòng)軟件。目前,最新版本為Android 2.4 Gingerbread和Android 3.0 Honeycomb.Android是基于Linux內(nèi)核的操作系統(tǒng),是Google公司在2007年11月5日公布的手機(jī)操作系統(tǒng)。它采用了軟件堆層(software stack,又名軟件疊層)的架構(gòu),主要分為三部分。底層Linux內(nèi)核只提供基本功能,其他的應(yīng)用軟件則由各公司自行開發(fā),部分程序以Java編寫。我們可以通過(guò)本文介紹的Android多媒體框架的源碼解讀,來(lái)具體分析一下這方面的基本知識(shí)。

重力感應(yīng)裝置包括感應(yīng)器、處理器控制器三個(gè)部分。感應(yīng)器負(fù)責(zé)偵測(cè)存儲(chǔ)器的狀態(tài),計(jì)算存儲(chǔ)器的重力加速度值;處理器則對(duì)加速度值是否超出安全范圍進(jìn)行判斷;而控制器則負(fù)責(zé)控制將磁頭鎖定或者釋放出安全停泊區(qū)。一旦感應(yīng)器偵測(cè)并經(jīng)處理器判斷當(dāng)前的重力加速度超過(guò)安全值之后,控制器就會(huì)通過(guò)硬件控制磁頭停止讀寫工作,并快速歸位,鎖定在專有的磁頭停泊區(qū)。這一系列動(dòng)作會(huì)在200毫秒內(nèi)完成。當(dāng)感應(yīng)裝置探測(cè)到加速度值恢復(fù)到正常值范圍之后,產(chǎn)品才會(huì)恢復(fù)工作。

Android多媒體框架的代碼在以下目錄中:external/opencore/。這個(gè)目錄是Android多媒體框架的根目錄,其中包含的子目錄如下所示:

* android:這里面是一個(gè)上層的庫(kù),它基于PVPlayer和PVAuthor的SDK實(shí)現(xiàn)了一個(gè)為Android使用的Player和Author.

* baselibs:包含數(shù)據(jù)結(jié)構(gòu)和線程安全等內(nèi)容的底層庫(kù)

* codecs_v2:這是一個(gè)內(nèi)容較多的庫(kù),主要包含編解碼的實(shí)現(xiàn),以及一個(gè)OpenMAX的實(shí)現(xiàn)

* engines:包含PVPlayer和PVAuthor引擎的實(shí)現(xiàn)

* extern_libs_v2:包含了khronos的OpenMAX的頭文件

* fileformats:文件格式的據(jù)具體解析(parser)類

* nodes:編解碼和文件解析的各個(gè)node類。

* oscl:操作系統(tǒng)兼容庫(kù)

* pvmi: 輸入輸出控制的抽象接口

* protocols:主要是與網(wǎng)絡(luò)相關(guān)的RTSP、RTP、HTTP等協(xié)議的相關(guān)內(nèi)容

* pvcommon:pvcommon庫(kù)文件的Android.mk文件,沒(méi)有源文件。

* pvplayer:pvplayer庫(kù)文件的Android.mk文件,沒(méi)有源文件。

* pvauthor:pvauthor庫(kù)文件的Android.mk文件,沒(méi)有源文件。

* tools_v2:編譯工具以及一些可注冊(cè)的模塊。

Splitter的定義與初始化

以wav的splitter為例,在fileformats目錄下有解析wav文件格式的pvwavfileparser.cpp文件,在nodes目錄下有pvmf_wavffparser_factory.cpp,pvmf_wavffparser_node.h, pvmf_wavffparser_port.h等文件。

我們由底往上看,vwavfileparser.cpp中的PV_Wav_Parser類有InitWavParser(),GetPCMData(),RetrieveFileInfo()等解析wav格式的成員函數(shù),此類應(yīng)該就是最終的解析類。我們搜索PV_Wav_Parser類被用到的地方可知,在PVMFWAVFFParserNode類中有PV_Wav_Parser的一個(gè)指針成員變量。

再搜索可知,PVMFWAVFFParserNode類是通過(guò)PVMFWAVFFParserNodeFactory的CreatePVMFWAVFFParserNode()成員函數(shù)生成的。而CreatePVMFWAVFFParserNode()函數(shù)是在PVPlayerNodeRegistry::PVPlayerNodeRegistry()類構(gòu)造函數(shù)中通過(guò)PVPlayerNodeInfo類被注冊(cè)到Oscl_Vector 的vector中,在這個(gè)構(gòu)造函數(shù)中,AMR,mp3等node也是同樣被注冊(cè)的。

由上可知,Android多媒體框架中對(duì)splitter的管理也是與ffmpeg等類似,都是在框架的初始化時(shí)注冊(cè)的,只不過(guò)Opencore注冊(cè)的是每個(gè)splitter的factory函數(shù)。

綜述一下splitter的定義與初始化過(guò)程:

每個(gè)splitter都在fileformats目錄下有個(gè)對(duì)應(yīng)的子目錄,其下有各自的解析類。

每個(gè)splitter都在nodes目錄下有關(guān)對(duì)應(yīng)的子目錄,其下有各自的統(tǒng)一接口的node類和node factory類。

播放引擎PVPlayerEngine類中有PVPlayerNodeRegistry iPlayerNodeRegistry成員變量。

在PVPlayerNodeRegistry的構(gòu)造函數(shù)中,將 AMR, AAC, MP3等splitter的輸入與輸出類型標(biāo)示和node factory類中的create node與release delete接口通過(guò)PVPlayerNodeInfo類push到Oscl_Vector iType成員變量中。

當(dāng)前Splitter的匹配過(guò)程

PVMFStatus PVPlayerNodeRegistry::QueryRegistry(PVMFFormatType& aInputType, PVMFFormatType& aOutputType, Oscl_Vector& aUuids)函數(shù)的功能是根據(jù)輸入類型和輸出類型,在已注冊(cè)的node vector中尋找是否有匹配的node,有的話傳回其唯一識(shí)別標(biāo)識(shí)PVUuid.

從QueryRegistry這個(gè)函數(shù)至底向上搜索可得到,在android中splitter的匹配過(guò)程如下:

android_media_MediaPlayer.cpp之中定義了一個(gè)JNINativeMethod(JAVA本地調(diào)用方法)類型的數(shù)組gMethods,供java代碼中調(diào)用MultiPlayer類的setDataSource成員函數(shù)時(shí)找到對(duì)應(yīng)的c++函數(shù)

1.{“setDataSource”, “(Ljava/lang/String;)V”, (void *)

android_media_MediaPlayer_setDataSource},

2.static void android_media_MediaPlayer_setDataSource

(JNIEnv *env, jobject thiz, jstring path)

此函數(shù)中先得到當(dāng)前的MediaPlayer實(shí)例,然后調(diào)用其setDataSource函數(shù),傳入路徑

3.status_t MediaPlayer::setDataSource(const char *url)

此函數(shù)通過(guò)調(diào)getMediaPlayerService()先得到當(dāng)前的MediaPlayerService, const sp& service(getMediaPlayerService());

然后新建一個(gè)IMediaPlayer變量, sp player(service-》create(getpid(), this, fd, offset, length));

在sp MediaPlayerService::create(pid_t pid, const sp& client, const char* url)中

調(diào)status_t MediaPlayerService::Client::setDataSource(const char *url)函數(shù),Client是MediaPlayerService的一個(gè)內(nèi)部類。

在MediaPlayerService::Client::setDataSource中,調(diào)sp MediaPlayerService::Client::createPlayer(player_type playerType)

生成一個(gè)繼承自MediaPlayerBase的PVPlayer實(shí)例。

以上就是對(duì)Android多媒體框架的源代碼的解讀。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19400

    瀏覽量

    230742
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    16442

    瀏覽量

    179018
  • Android
    +關(guān)注

    關(guān)注

    12

    文章

    3941

    瀏覽量

    127729
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    CEVA推出用于高能效多內(nèi)核系統(tǒng)的AMF - Android多媒體框架

    全球領(lǐng)先的硅產(chǎn)品知識(shí)產(chǎn)權(quán)(SIP)平臺(tái)解決方案和數(shù)字信號(hào)處理器(DSP)內(nèi)核授權(quán)廠商CEVA公司針對(duì)基于Android系統(tǒng)推出全新低能耗軟件框架,它使用異構(gòu)CPU和DSP系統(tǒng)架構(gòu),能夠有效地降低復(fù)雜多媒體應(yīng)用所需的功耗。
    發(fā)表于 05-06 10:24 ?1661次閱讀

    多媒體應(yīng)用開發(fā)

    主要內(nèi)容多媒體框架(MMF)客戶端API音頻程序開發(fā)視頻程序開發(fā)攝像頭使用
    發(fā)表于 03-08 22:50

    基于ARM Linux QT的掌上多媒體系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn) (1)

    跟著人們糊口水平的進(jìn)步,消費(fèi)結(jié)構(gòu)發(fā)生了巨大變化,消費(fèi)者用于娛樂(lè)方面的支出在總支出中所占的比例正在不斷擴(kuò)大。掌上多媒體系統(tǒng)可以知足人們對(duì)于試聽以及便攜的需求,另外還可以實(shí)現(xiàn)一些其他功能,如圖片瀏覽
    發(fā)表于 08-04 10:15

    多媒體空中鼠標(biāo)

    項(xiàng)目說(shuō)明:多媒體空中鼠標(biāo)是一個(gè)集無(wú)線傳輸、多媒體控制、教學(xué)激光筆和傳統(tǒng)鼠標(biāo)功能于一身的創(chuàng)新生活作品。它擺脫了傳統(tǒng)鼠標(biāo)有數(shù)據(jù)線和必須放在平臺(tái)上的命運(yùn),只要在空中擺動(dòng)就可以實(shí)現(xiàn)指針的偏移,達(dá)到控制的目的
    發(fā)表于 10-31 18:07

    多媒體空中鼠標(biāo)

    `作品進(jìn)展:目前已處于調(diào)試狀態(tài),空中鼠標(biāo)是利用靜態(tài)重力感應(yīng)來(lái)控制電腦的鼠標(biāo)指針,多媒體的功能主要體現(xiàn)在對(duì)電腦的各個(gè)軟件的控制和對(duì)家庭不同電器的控制,例如:控制PPT,控制音樂(lè)軟件,控制視頻播放軟件
    發(fā)表于 12-15 18:15

    多媒體的FPGA實(shí)現(xiàn)PDF

    多媒體的FPGA實(shí)現(xiàn)PDF
    發(fā)表于 10-26 21:14

    采用Au1200實(shí)現(xiàn)多媒體播放終端設(shè)計(jì)

    終端的設(shè)計(jì)方案。 2 硬件設(shè)計(jì) 2.1 功能分析 表1對(duì)新一代網(wǎng)絡(luò)播放終端與獨(dú)立播放機(jī)進(jìn)行了比較。為了實(shí)現(xiàn)網(wǎng)絡(luò)遠(yuǎn)程控制播放,多媒體播放終端必須具備以下功能:1)連接服務(wù)器:?jiǎn)?dòng)后,自動(dòng)連接遠(yuǎn)程服務(wù)器;2
    發(fā)表于 04-25 07:00

    怎么實(shí)現(xiàn)在嵌入式環(huán)境下使用QT多媒體框架

    要在嵌入式環(huán)境下使用QT多媒體框架,必須包含第3方多媒體庫(kù)QT本身以插件的方式使用第3方多媒體庫(kù):1 插件是動(dòng)態(tài)庫(kù)方式,可以動(dòng)態(tài)更新2 靜態(tài)插件的方式,只是靜態(tài)編譯QT時(shí)集成插件,不可
    發(fā)表于 10-27 09:34

    ART-PI重力感應(yīng)無(wú)線智能小車設(shè)計(jì)實(shí)現(xiàn)

    實(shí)現(xiàn)無(wú)線重力感應(yīng)遙控小車。終極目標(biāo):發(fā)射板采用MPU6050采集陀螺儀數(shù)據(jù),通過(guò)wifi+MQTT協(xié)議發(fā)布主題至Onenet服務(wù)器,控制板通過(guò)wifi+MQTT訂閱主題,
    發(fā)表于 02-10 06:39

    HarmonyOS多媒體框架介紹

    可以通過(guò)該接口調(diào)用實(shí)現(xiàn)對(duì)音頻數(shù)據(jù)的采集。Audio Manager提供了音頻流類型、音量、音頻設(shè)備管理等接口,開發(fā)者可以通過(guò)調(diào)用該接口實(shí)現(xiàn)對(duì)相關(guān)音頻對(duì)象的管理。 以上是多媒體框架的相
    發(fā)表于 01-03 16:36

    凌陽(yáng)多媒體獲授權(quán)采用CEVA MM2000多媒體解決方案開發(fā)

    凌陽(yáng)多媒體獲授權(quán)采用CEVA MM2000多媒體解決方案開發(fā)便攜式多媒體處理器 硅產(chǎn)品知識(shí)產(chǎn)權(quán) (SIP) 平臺(tái)解決方案和數(shù)字信號(hào)處理器 (DSP) 內(nèi)核授權(quán)廠商CEVA公司宣布,凌
    發(fā)表于 09-16 09:59 ?915次閱讀

    Viosoft推出針對(duì)MIPS-Based數(shù)字多媒體設(shè)計(jì)的A

    Viosoft推出針對(duì)MIPS-Based數(shù)字多媒體設(shè)計(jì)的Android采用套件 日前,Viosoft公司宣布針對(duì)MIPS-Based數(shù)字多媒體設(shè)計(jì)推出
    發(fā)表于 12-08 08:42 ?1224次閱讀

    基于JMF的多媒體遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì)

    首先簡(jiǎn)單介紹了多媒體遠(yuǎn)程監(jiān)控系統(tǒng)的概念和Java多媒體框架(JMF)的優(yōu)點(diǎn);然后給出了多媒體遠(yuǎn)程監(jiān)控系統(tǒng)的系統(tǒng)結(jié)構(gòu)設(shè)計(jì);并重點(diǎn)論述了實(shí)現(xiàn)
    發(fā)表于 09-20 16:05 ?15次下載
    基于JMF的<b class='flag-5'>多媒體</b>遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì)

    軟方電子:android車載多媒體終端

    Android車載多媒體終端,“硬件+軟件”全套解決方案,具備很強(qiáng)的擴(kuò)展性,豐富的免費(fèi)應(yīng)用,可以實(shí)現(xiàn)對(duì)汽車導(dǎo)航、信息、娛樂(lè)綜合系統(tǒng)的深度定制。
    的頭像 發(fā)表于 10-10 10:24 ?1987次閱讀

    HarmonyOS多媒體框架介紹

    作為一款全新的面向全場(chǎng)景的分布式操作系統(tǒng),不斷創(chuàng)新,致力于為開發(fā)者提供更好、更高效的使用體驗(yàn)。接下來(lái)讓我們一起學(xué)習(xí)了解下HarmonyOS中的多媒體框架的相關(guān)知識(shí)吧! 多媒體框架介紹結(jié)
    的頭像 發(fā)表于 12-30 19:15 ?798次閱讀
    主站蜘蛛池模板: 秋霞伦理电影在线看| 强奷漂亮女老板在线播放| 国产成人综合在线观看网站| 97在线精品视频免费| 99爱在线观看| 99re6久久热在线视频| 2022国产91精品久久久久久| 在线观看99| 回复术士人生重启在线观看| 22eee在线播放成人免费视频| 亚洲中文字幕永久在线| 亚洲AV无码国产精品午夜久久| 暖暖直播免费观看韩国| 毛片免费在线播放| 伦理79电影网在线观看| 美妇教师双飞后菊| 内射老妇BBX| 久久精品亚洲AV无码三区观看| 九九99亚洲精品久久久久| 交换邻居波多野结衣中文字幕| 花蝴蝶在线观看中字| 久久AV喷吹AV高潮欧美| 久久久91精品国产一区二区| 擼擼擼麻豆密臀AV| 欧美成人中文字幕在线看| 日本 一二三 不卡 免费| 少女开女包www| 亚洲av欧美在我| 亚洲色噜噜狠狠站欲八| 在线亚洲免费| GOGOGO高清在线播放免费| 成在线人免费| 囯产免费久久久久久国产免费| 国产精品日本无码久久一老A| 國產日韓亞洲精品AV| 久久久无码AV精品亚洲A片软件| 蜜桃视频一区二区| 日韩一区二区三区四区区区| 羞羞答答影院在线| 永久免费在线看mv| 99国产精品久久|