android mutilmedia framework 简述

来源:互联网 发布:网络教学软件平台 编辑:程序博客网 时间:2024/06/17 21:18

这里直接画出MediaRecorder和MediaPlayer在系统各个层次中相关联的类,虚线的连接代表跨进程的binder通信,这样的结构前面也有提到过,MediaRecorder既有充当binder proxy,也有充当binder server端,目的是为了实现双向通信,MediaPlayer也是如此。


1、MediaPlayerService

它是一个全局的service,也就是可以通过servicemanager拿到,它运行在mediaserver进程中,主要作用是需要透过它来创建MediaRecorder和MediaPlayer的连接。

 

2、MediaRecorder

提高录制功能的一个类,可以录制不同格式音频、视频文件。忽略中间的各种封装,可以认为java层的MediaRecorder对应的就是mediaserver中的StageFrightRecorder,也就是说MediaRecorder接口对应的实现都在StageFrightRecorder中。

 

3、MediaPlayer

提供播放功能的一个类,可以播放不同格式的音频、视频文件,可以本地资源,也可以播放网络资源。忽略中间的各种封装,可以认为java层的MediaPlayer对应的就是mediaserver中的NuPlayer,也就是说MediaPlayer接口对应的实现都在NuPlayer中。有了这样的认识之后,看代码了解流程的时候会更直接,比如想要知道MediaPlayer的prepare()接口做了那些事,可以直接看NuPlayer里面prepareAsync()的实现。





原创粉丝点击