標籤:android media camera surface recorder
請支援原創,尊重原創,轉載請註明出處:http://blog.csdn.net/kangweijian(來自kangweijian的csdn部落格)
Android 多媒體應用的主要業務
- Music Player
- Video Player
- Camera
- Sound Recorder
- VideoCamera
- Media Metadate
媒體播放器結構
媒體播放器是多媒體中最重要的一個環節,媒體播放器涉及以下內容:
- 本地媒體架構中的媒體播放器部分
- PVPlayer(實現的核心代碼)
- 音頻、視頻編解碼模組(可選)
- 音訊輸出環節
- 視頻輸出環節(Surface系統或者Overlay)
- android.media.MediaPlayer類
- android.view.Surface類
- android.widget.VideoView類
- Music應用程式套件組合和Camera應用程式套件組合(視頻播放的MovieView類)
- 典型的資料流在Android媒體播放器中的運行情況是:上層的Java應用程式將媒體的URI(可以是媒體檔案和流媒體)作為輸入設定到媒體播放器中,經過Java架構、JNI和本地架構,一直設定到由PVPlayer中。在這個過程中,只是傳遞了媒體URI路徑,並無資料流傳遞。由PVPlayer進行解析後,將媒體分成音頻流(MP3、AMR、AAC等)和視頻流(H263、H264、MPEG4等),經過轉碼器的處理和同步(AVSync),轉換成未經處理資料(音頻一般是PCM,視頻一般是YUV或者RGB格式)。音視頻未經處理資料將被送入音頻和視頻的輸出環節中。
- 在實現的過程中,媒體播放器可能有一些變化:僅有音頻資料時,只需要進行音頻解碼,且不需要做音視頻的同步工作:硬體的解碼環節可以作為PVPlayer的外掛程式完成編解碼工作;標準的實現是解碼環節解碼後,音視頻的未經處理資料從使用者控制項傳遞到音視頻輸出環節中,但是如果使用硬體解碼器,音視頻的未經處理資料也可以不經過使用者控制項,直接輸入到硬體裝置上;作為視頻的輸出裝置,可以基於Android中的通用的Surface介面或者Overlay系統。
照相機系統結構
照相機是多媒體中比較獨立的環節,照相機涉及的內容如下:
- 本地的Camera的架構;
- 映像編碼模組(可選);
- 視頻輸出環節(Surface系統或者Overlay);
- android.hardware.Camera類;
- android.view.Surface類;
Camera應用程式套件組合。
Android的照相機系統主要有兩種業務:取景器(ViewFinder)和拍攝照片。取景器實現了預覽(Preview)功能,拍攝照片的輸出是照片檔案,取景器預覽的輸出是Android的Surface。照相機一般只需要實現JPEG資料的編碼,不需要視頻流編碼,因此通常不經過PacketVideo。
錄音機系統結構
錄音機系統只設計音頻部分,其結構比較簡單。錄音機涉及的內容如下:
攝像機系統結構
攝像機是多媒體中比較複雜的一個部分,攝像機涉及的內容如下:
- 本地媒體架構中的媒體記錄器部分;
- PVAuthor(實現的核心部分);
- 音頻/視頻編碼模組(可選);
- 音頻輸入環節;
- Camera的本地介面(作為視頻輸入環節);
- 視頻輸出環節(Surface系統或者Overlay);
- android.media.MediaRecorder類;
- android.view.Surface類;
- android.widget.VideoView類;
- Music包和Camera包。
- Android的攝像機系統有3個方面的業務:視頻預覽、視頻錄製、音頻錄製。攝像機系統單純的視頻預覽功能和照相機的預覽基本一致。在錄製的過程中,實際上是視頻預覽和錄製、音頻錄製三者同時進行的,視頻未經處理資料從Camera的硬體硬體抽象層送上後,將同時被送到視頻輸出系統和PVAuthor中;音頻未經處理資料從音訊輸入裝置中得到,也被送入打牌PVAuthor中,PVAuthor對音頻資料進行同步和編碼之後,增加媒體檔案的頭資訊,寫入到媒體檔案上。在這個過程中,編碼環節也可以使用硬體實現的外掛程式模組,以提高系統的效能。
- 媒體錄製和媒體播放的過程基本相反,但是多了視頻預覽的環節。
- 攝像機的Java應用是Camera包中的VideoCamera,視頻播放的應用也被包含在Camera包中,基於VideoView實現。
《Android系統原理及開發要點詳解》筆記 by2015.2.23晚
請支援原創,尊重原創,轉載請註明出處:http://blog.csdn.net/kangweijian(來自kangweijian的csdn部落格)
Android多媒體系統的業務