b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

stagefrightrecorder_stagefright是什么_voice recorder安卓

电脑杂谈  发布时间:2017-05-31 01:03:19  来源:网络整理

MediaRecorder.cpp通过android_media_MediaRecorder.cpp JNI层与Java API类MediaRecorder.java相互关联。stagefrightrecorder

下面通过对MediaRecorder类的几个主要函数进行分析来学习MediaRecorder的结构和处理流程。

1.MediaRecorder()构造函数

(1)首先通过getMediaPlayerService函数从ServiceManager中取得MediaPlayerService对象

MediaPlayerService对应的字符串标识是"media.player"。

stagefright是什么_voice recorder安卓_stagefrightrecorder

顺便说一下,MediaPlayerService是在MediaPlayerService::instantiate()函数中注册到ServiceManager中的,最终是放在了Binder对象中。

void MediaPlayerService::instantiate() {
    defaultServiceManager()->addService(
            String16("media.player"), new MediaPlayerService());
}

(2)取得MediaPlayerService对象service后,通过createMediaRecorder(getpid())方法创建对应的MediaRecorder对象

createMediaRecorder函数的调用过程如下:

先调用BpMediaPlayerService类的createMediaRecorder函数,然后通过code CREATE_METADATA_RETRIEVER调用远程的实现。

在BnMediaPlayerService::onTransact中,当code为CREATE_MEDIA_RECORDER时,通过调用BnMediaPlayerService实现类的createMediaRecorder方法创建MediaRecorder,即调用MediaPlayerService::createMediaRecorder方法。MediaPlayerService类实现了BnMediaPlayerService抽象类。

(3)在MediaPlayerService::createMediaRecorder函数中,通过创建MediaRecorderClient对象,返回真正的MediaRecorder

在MediaRecorderClient构造函数中,创建了StagefrightRecorder对象,即真正的录制对象,使用的Stagefright多媒体框架。在4.0中只有StagefrightRecorder一个录制框架。

在2.2,2.3中还存在另外一个录制对象PVMediaRecorder,使用的是OpenCore框架实现录音或录像。stagefrightrecorder

具体可以参考以前的一篇博客:MediaRecorderClient决定使用stagefright还是opencore实现录音录像的代码实现

至此,MediaRecorder构造函数就分析完了。

MediaRecorder构造函数的核心代码只有两句:


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-50206-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...