Android的Media架构介绍

代码结构:

Open Core 的代码在Android 代码的 External/Opencore 目录中 。这个目录是OpenCore 的根目录,其中包含的子目录如下所示 :

  • android  :这里面是一个上层的库,它实现了一个为Android 使用的音视频采集,播放的接口,和DRM 数字版权管理的接口实现。
  • baselibs  :包含数据结构和线程安全等内容的底层库
  • codecs_v2  :音视频的编解码器,基于  OpenMAX  实现
  • engines  :核心部分  ,多媒体  引擎的实现
  • extern_libs_v2  :包含了  khronos  的  OpenMAX  的头文件
  • fileformats  :文件格式的解析(  parser  )工具
  • nodes  :提供一些PVMF 的NODE ,主要是编解码和文件解析方面的。
  • oscl  :操作系统兼容库
  • pvmi  :  输入输出控制的抽象接口
  • protocols  :主要是与网络相关的  RTSP  、  RTP  、  HTTP  等协议  的相关内容
  • pvcommon  :  pvcommon  库文件的  Android.mk  文件,没有源文件。
  • pvplayer  :  pvplayer  库文件的  Android.mk  文件,没有源文件。
  • pvauthor  :  pvauthor  库文件的  Android.mk  文件,没有源文件。
  • tools_v2  :编译工具以及一些可注册的模块。

本文主要介绍Android MediaPlayer的架构,主要由OpenCore 里的PV Player来实现的。

1.概述
Android的MediaPlayer包含了Audio和Video的播放功能,Music和Video两个应用程序都是调用MediaPlayer实现的。

代码主要分布在以下的目录中:
JAVA程序的路径:
packages/apps/Music/src/com/android/music/

JAVA类的路径:
frameworks/base/media/java/android/media/MediaPlayer.java

JAVA本地调用部分(JNI):
frameworks/base/media/jni/android_media_MediaPlayer.cpp
编译为 libmedia_jni.so

头文件:
frameworks/base/include/media/

多媒体库:
frameworks/base/media/libmedia/
编译为 libmedia.so

多媒体服务:
frameworks/base/media/libmediaplayerservice/
编译为 libmediaplayerservice.so

具体实现:
external/opencore/
编译为 libopencoreplayer.so

libopencoreplayer.so是主要的实现部分,其他的库基本上都是在其上建立的封装和为建立进程间通讯的机制。

2.框架

Android的MediaPlayer架构介绍 - forest - forest
 
 

 

在各个库中,libmedia.so位于核心的位置,它对上层的提供的接口主要是MediaPlayer类,libmedia_jni.so通过调用MediaPlayer类提供对JAVA的接口,并且实现了android.media.MediaPlayer类。

libmediaplayerservice.so是Media的服务器,它通过继承libmedia.so的类实现服务器的功能,而libmedia.so中的另外一部分内容则通过进程间通讯和libmediaplayerservice.so进行通讯。libmediaplayerservice.so的真正功能通过调用PV Player来完成。
MediaPlayer部分的头文件在frameworks/base/include/media/目录中,这个目录是和libmedia.so库源文件的目录frameworks/base/media/libmedia/相对应的。主要的头文件有以下几个:
IMediaPlayer.h
IMediaPlayerClient.h
IMediaPl

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值