Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android Media Framework 總綱

Android Media Framework 總綱

編輯:關於Android編程

1. Media Framework 層次

\

(1) 應用層

Music, VideoPlayer

(2) JAVA層

MediaPlayer : frameworks/base/media/java/android/media/MediaPlayer.java

(3) JNI

JNI_MediaPlayer -- libmedia_jni.so

frameworks/base/media/jni/android_media_player.cpp

(4)Server Proxyer

libmedia -- libmedia.so

frameworks/av/media/libmedia/MediaPlayer.cpp

(5) Server

libmediaplayerservice -- libmediaplayerservice.so

frameworks/av/media/libmediaplayerservice/

(6) Protocal

HTTP / RTSP / HTTPLive

(7.1)Stagefright

libstagefright -- libstagefright.so

frameworks/av/media/libstagefright/StageFrightPlayer.cpp

(7.2) Nuplayer

 

PS:

流媒體調用NuPlayer,本地播放調用stagefright,stagefright會調用AwesomePlayer相應的接口,最後調用NuPlayer。

按照目前的趨勢,之後NuPlayer將會完全取代AwesomePlayer。

 

2. MediaPlayer Classes Structure

接口定義:

IMediaPlayerService.h

IMediaPlayerClient.h

MediaPlayer.h

框架實現:

MediaPlayer.cpp

MediaPlayerService.cpp

MeidaPlayer的具體功能在PVPlayer(庫 libopencoreplayer.so)中的實現。

 

\

 

3. StageFright

StageFright是處理視頻的模塊:libstagefright,其核心未AwesomePlayer。

\

\

 

1.mediaPlayerservice調用Stagefright相應的接口

2.Stagefright調用AwesomePlayer相應的接口

3.AwesomePlayer調用OMXCode讀取ES數據,並且進行解碼的處理

4.OMXCodec調用MediaSource的read函數來獲取音視頻的數據

5.OMXCodec調用Android的IOMX接口,其實就是Stagefrightde中的 OMX實現

6. OMX調用OMXMaster,而OMXMaster調用OMXPluginBase的接口,這裡也可以獲取外部的Codec的插件,最終調用對應的解碼組建來完成解碼,不同解碼組件不太相同,後面會做介紹

7.解碼完成後,通過OMXcodec返回的裸碼流數據會在Awesomeplayer中調用Render模塊,實現渲染,從而給用戶提供了畫面


 

 

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved