編輯:關於Android編程
(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。
接口定義:
IMediaPlayerService.h
IMediaPlayerClient.h
MediaPlayer.h
框架實現:
MediaPlayer.cpp
MediaPlayerService.cpp
MeidaPlayer的具體功能在PVPlayer(庫 libopencoreplayer.so)中的實現。
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模塊,實現渲染,從而給用戶提供了畫面
Android中登錄界面的記住密碼功能實現,將用戶輸入的賬號和密碼以SharedPreferences方式存儲(注意的是,密碼要用MD5明文加密)。 界面xml
MainActivity如下:+currentStatus, Toast.LENGTH_SHORT).show(); } } } Sw
增加String在Android frameworks/base/core/res/res/values中增加String,舉例來說在string.xml增加一個Stri
Sharing Simple DataOne of the great things about Android applications is their abilit
在Android應用程序框架中,Activity和Service類都繼承