简介Android 多媒体部分的框架涉及到应用层、Java框架、C语言框架、硬件抽象层等环节。
多媒体主要包括两方面内容: 1、输入输出环节(音频视频的输入输出) 2、中间处理环节(编解码环节)
其中,输入输出环节由其他方面的硬件抽象层实现,中间处理环节在framework实现,可以使用硬件加速。
Android 多媒体的业务: - Music player - Video player - Camera - Sound Recorder - Camcorder - Video Telephone
Java 类: frameworks/base/media/java/android/media/ 类的名称为 android.media.*
JAVA 本地调用部分( JNI ): frameworks/base/media/* 这部分内容编译成为目标是 libmedia_jni.so.
基于 OpenCore 的多媒体播放器和记录器 external/opencore/ 多媒体框架的 media 库: frameworks/base/include/media/ frameworks/base/media/libmedia/ 这部分的内容被编译成库 libmedia.so 。
多媒体服务部分: frameworks/base/media/libmediaplayerservice/ 这部分内容被编译成库 libmediaplayerservice.so 。 从多媒体应用实现的角度,主要包括两方面的内容:
1、输入输出环节 (音频、视频纯数据流的输入输出系统) 2、中间处理环节 (文件格式处理环节和编解码环节)
以一个 MP3 播放器为例,从功能的角度就是将一个 mp3格式的文件作为播放器的输入,将声音从播放设备输出。从实现的角度,MP3 播放器经过了以下的阶段: MP3 格式的文件解析、 MP3 编码流的解码、 PCM 输出的播放。
多媒体的业务Android 多媒体系统的整体业务
音频 / 视频播放器
 Camera
 录音机
 摄像机

libmedia的框架部分1、媒体播放器
2、媒体记录器
3、媒体元信息
 多媒体的服务多媒体服务的守护进程的代码:frameworks/base/media/mediaserver
其中只有一个源文件main_mediaserver.cpp,将被编译成为一个可执行程序mediaserver。它负责启动了多媒体服务、照相机服务、音频服务这三个服务。 
|