在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 基于Android系統(tǒng)的多媒體播放器解決方案

            基于Android系統(tǒng)的多媒體播放器解決方案

            作者: 時(shí)間:2012-03-30 來(lái)源:網(wǎng)絡(luò) 收藏

            2.3.1 獲取數(shù)據(jù)
            若要獲取Preferences文件的數(shù)據(jù),例如繼續(xù)播放動(dòng)作需要讀取播放歷史信息。首先通過(guò)調(diào)用Context.getSharedPreferences(String name,int mode)方法傳入Preferences文件名和打開(kāi)模式來(lái)獲得一個(gè)Shared Preferences對(duì)象sp,若該P(yáng)references文件不存在,在提交數(shù)據(jù)后會(huì)創(chuàng)建該P(yáng)references文件。利用該sp對(duì)象調(diào)用getter方法,傳入相應(yīng)的鍵來(lái)讀取數(shù)據(jù)。
            c.jpg
            平臺(tái)中,所有音/視頻文件的相關(guān)信息都是以Content的形式提供給開(kāi)發(fā)者的,所以歷史播放信息是content://樣式的URI,也就是前面提到的nowPlaying。
            2.3.2 存儲(chǔ)數(shù)據(jù)
            若要修改Preferences文件的數(shù)據(jù),例如暫停當(dāng)前播放,或停止播放并退出該播放器軟件會(huì)引起播放歷史信息的變更。而產(chǎn)生該動(dòng)作的原理是,每當(dāng)播放新的音/視頻文件首先將其URI賦值到全局變量nowPlaying,然后在退出該播放軟件時(shí)處理變更工作:利用Shared Prefer ences對(duì)象sp調(diào)用edit()方法獲得一個(gè)內(nèi)部類(lèi)Editor對(duì)象editor,利用該editor對(duì)象對(duì)Preferences文件進(jìn)行編輯,即讀取nowPlaying的數(shù)據(jù),隨后必須調(diào)用commit()方法才可以完成修改該P(yáng)references文件里鍵為URI_KEY的對(duì)應(yīng)數(shù)值。
            d.jpg
            2.4 多媒體應(yīng)用
            2.4.1 多媒體宏觀結(jié)構(gòu)
            的多媒體部分框架涉及應(yīng)用程序、Java框架層、C語(yǔ)言框架、硬件抽象層等環(huán)節(jié)。其中 Java框架層提供標(biāo)準(zhǔn)多媒體API供上層相關(guān)應(yīng)用程序調(diào)用。而媒體的播放過(guò)程實(shí)際上是由下層的OpenCore和Stagefright等實(shí)現(xiàn)的。Android多媒體宏觀結(jié)構(gòu)如圖2所示。

            本文引用地址:http://www.biyoush.com/article/165780.htm

            e.jpg


            2.4.2 多媒體處理過(guò)程
            典型數(shù)據(jù)流在多中的運(yùn)行過(guò)程主要經(jīng)過(guò)以下環(huán)節(jié):最上層的Java應(yīng)用程序?qū)⒚襟wURI(媒體文件或者流媒體)作為輸入設(shè)置到中(主要是通過(guò)Android平臺(tái)提供的標(biāo)準(zhǔn)接口API,如MediaPlayer(接口)等),經(jīng)過(guò)Java框架層,JNI和本地框架層,一直設(shè)置到PVPlayer(OpenCore)。該過(guò)程中只是傳遞媒體URI路徑,并無(wú)數(shù)據(jù)流傳遞。由PVPlayer進(jìn)行解析后,將媒體分成音頻流(MP3,AMR,AAC等)和視頻流(H263,H264,MPEG4等),經(jīng)過(guò)編解碼器的處理和同步(AVSync)處理后轉(zhuǎn)換成原始數(shù)據(jù)(音頻通常是PCM,視頻通常是YUV或RGB格式)。隨后音視頻原始數(shù)據(jù)將被送入音頻和視頻的輸出環(huán)節(jié)(揚(yáng)聲器或者顯示屏等硬件)。
            2.4.3 多媒體播放接口
            Android平臺(tái)提供android.media包來(lái)管理各種音頻和視頻的媒體接口,該包中的MediaPlayer(媒體播放器接口)用于控制音頻或視頻文件和流的回放。另外在android.widget包中還提供Video View(視頻視圖)組件用于播放視頻文件,以簡(jiǎn)化相對(duì)于使用Media Player播放視頻的繁瑣控制過(guò)程。
            (1)MediaPlayer
            對(duì)播放音頻而言,通過(guò)MediaPlayer.crea te(Context context,Uri uri)方法來(lái)獲取播放器實(shí)例,無(wú)需播放準(zhǔn)備,直接通過(guò)MediaPlay er.start()方法來(lái)啟動(dòng)播放動(dòng)作。其中nowPlaying就是用戶(hù)當(dāng)前選中的待播放文件。
            //開(kāi)始播放
            MediaPlayer mPlayer=MediaPlayer.create(context,nowPlaying);
            mPlayer.start();
            通過(guò)播放器實(shí)例mp調(diào)用MediaPlayer.pause()方法可以暫停當(dāng)前播放行為,可以使用start()方法恢復(fù)播放。
            首先調(diào)用MediaPlayer.stop()停止當(dāng)前播放行為,再調(diào)用釋放與播放器相關(guān)資源的方法MediaPlayer.release()來(lái)完成停止播放動(dòng)作。
            對(duì)于播放視頻來(lái)說(shuō),通過(guò)MediaPlayer(媒體播放器接口)的“setDataSource”方法可以指定視頻文件路徑。與播放音頻數(shù)據(jù)不同的是,視頻播放還要設(shè)置顯示視頻內(nèi)容的承載體,使用MediaPlayer的“setDisplay”方法為當(dāng)前播放器實(shí)例設(shè)置一個(gè)用于顯示視頻內(nèi)容、代表屏幕描繪的控制器。這樣用于播放視頻的播放承載體必須實(shí)現(xiàn)Surface Holder(表面視圖處理接口)的視圖組件。



            評(píng)論


            相關(guān)推薦

            技術(shù)專(zhuān)區(qū)

            關(guān)閉