在Android froyo(2.2)版本里,对多媒体引擎做了变动,新添加了stagefright框
架,并且默认情况android选择stagefright,并没有完全抛弃 opencore,主要是做
了一个OMX层,仅仅是对 opencore的omx-component部分做了引用。stagefright
是在MediaPlayerService这一层加入的,和 opencore是并列的。Stagefright在
Android中是以shared library的形式存在(libstagefright.so),其中的module --
AwesomePlayer可用来播放video/audio。 AwesomePlayer提供许多API,可以让上
层的应用程序(Java/JNI)来调用。
mediaplayer框架图
mediaplayer
JNI层(libmedia_jni.so
)
媒体播放服务(
mediaplayerserver)
Mediaplayer接口
Statefright
(AwesomePlayer)
音频输出
AudioFlinger
SurfaceFlinger
视屏输出
本地媒体库(libmedia.so)
Open core
(pvplayer)
注:
音频信号
视屏信号
由图可知,stagefright是在MediaPlayerService这一层加入的,和
opencore是并列的,下面我们去看看Stagefright_framework总体框架