標籤:接下來 iap 構造 poi pac cto str .cpp 智能
最近在做Camera的方案(雙進程開啟一個Camera),涉及到使用MediaRecorder 進行錄影,還是自己建立一套錄影系統。接下來我將記錄下本次源碼分析的流程。
有關於Client和Server間的binder通訊,會在下一篇裡分析
(Client)
STEP ONE(Contructor)
1../base/media/java/android/media/MediaRecorder.java
在MediaRecorder的構造中就是使用了native_setup()的方法(Native方法)。
在AndroidRuntime中有一個方法registerNativeMethods 就是把當前的方法註冊到AndroidRuntime中,免去了我們對so的Load的工作。
2../base/media/jni/android_media_MediaRecorder.cpp:
其中的sp mr = new MediaRecorder(String16(opPackageNameStr.c_str()));方法才是我們MediaRecorder建立的關鍵。關於sp wp 建議各位有興趣的同學去看下,這裡可以理解為智能指標。
3.av/media/libmedia/mediarecorder.cpp
point{
(1)const sp service(getMediaPlayerService());
(2)mMediaRecorder = service->createMediaRecorder(opPackageName);
}
getMediaPlayerService()擷取到ServiceManager。通過ServiceManagthd178.comer擷取到Discrooptoyongshiyule178.comr為(media.player)的services(這也是MediaRecorder(jnihuarenyl.cn)沒有去實現BpMediaPlayerService的原因.),然後通過調用service的createMediaRecorder()的方法得到一個MediaRecorder對象
(Server)
4../av/media/libmediaplayerservice/MediaPlayerService.cpp
在servicer中建立了一個sp retriever = new MetadataRetrieverClient(pid);
5.av/media/libmediaplayerservice/MediaRecorderClient.cpp
這邊會建立一個StagefrightRecorder的執行個體,這個執行個體主要是執行MediaRecorder的一些具體操作,包括{
接收一些Camera,Audio 的資料,資料的編碼,視頻檔案的寫入。
}
Android7.0 MediaRecorder源碼分析