Android mediaRecorder框架简述(一)

下面是框架简图:

Android mediaRecorder框架简述(一)_第1张图片

首先调用mediaRecorder.java中的方法比如start方法,会调用jni


也就是调用android_media_recorder.cppstart方法

Android mediaRecorder框架简述(一)_第2张图片

 接着到mediaRecorder.cpp,mediaRecorder是由mediaplayerService创建的,而mediaRecoder.cppmediaplayerService是通过binder机制来进行进程间的通信的,这时client端就是通过操作服务端返回的imediaRecorder来对服务端进行控制的:

Android mediaRecorder框架简述(一)_第3张图片


这里new mediaRecorderClient这是其实是创建了一个StagefrightRecorder:

Android mediaRecorder框架简述(一)_第4张图片

其实我们在java层调用start就是调用了StagefrightRecorder中的strat方法,在这里我们可以看到根据传进来的mOutputFormat值(输出格式)会选择不同的编码类型的方法:

Android mediaRecorder框架简述(一)_第5张图片


假如我们输出的是3gp格式,我们调用:startMPEG4Recording() 方法:

Android mediaRecorder框架简述(一)_第6张图片


接着调用setupMPEG4Recording:

Android mediaRecorder框架简述(一)_第7张图片


你可能感兴趣的:(Android mediaRecorder框架简述(一))