【
【
【
【 eoe
eoe
eoe
eoe Android
Android
Android
Android 特刊
特刊
特刊
特刊 】
】
】
】 第十五期
第十五期
第十五期
第十五期
本文档由 eoeAndroid
eoeAndroid
eoeAndroid
eoeAndroid 社区组织策划,整理及发布,版权所有,转载请保留
!
!
!
!
www.eoeandroid.com
www.eoeandroid.com
www.eoeandroid.com
www.eoeandroid.com 做最棒的 Android
Android
Android
Android 开发社区!
目录
【 Android 多媒体框架】
1.1 Android 系统整体架构 .............................................3
1.2 Android 多媒体架构 ...............................................3
1.3 OpenCore 介绍 ....................................................4
【 OpenCore 的代码结构】
2.1 OpenCore 代码结构 .................................................6
2.2 OpenCore 的编译结构 ...............................................7
2.3 OpenCore OSCL 简介 ................................................11
2.4 Open Core 上层代码结构 ............................................13
2.5 Open Core 中的核心概念 ............................................17
2.6 OpenCore 的 PVPlayer 介绍 ..........................................19
【文件格式处理和编解码部分简介】
3.1 文件格式的处理 ...................................................27
3.2 编解码 ............................................................28
3.3 3OpenMAX 的功能 ...................................................28
【 Android 多媒体开发技巧】
4.1 Android 多媒体开发相关技巧一 ......................................30
4.2 Android 多媒体开发相关技巧二 (FrameWork 相关 ) ......................32
【 Android 多媒体实例教程】
5.1 音乐播放器功能的实现 ..............................................34
5.2 自动下载歌词与歌词的解析 ..........................................44
【其他】
6.1 提交 BUG ..........................................................55
6.2 关于 eoeAndroid ....................................................55
6 .3 eoe Android 移动互联高峰论坛即将开始 ...............................55
6 . 4 eoe : Android 传教士 ................................................55
【
【
【
【 eoe
eoe
eoe
eoe Android
Android
Android
Android 特刊
特刊
特刊
特刊 】
】
】
】 第十五期
第十五期
第十五期
第十五期
本文档由 eoeAndroid
eoeAndroid
eoeAndroid
eoeAndroid 社区组织策划,整理及发布,版权所有,转载请保留
!
!
!
!
www.eoeandroid.com
www.eoeandroid.com
www.eoeandroid.com
www.eoeandroid.com 做最棒的 Android
Android
Android
Android 开发社区!
【 Android 多媒体框架】
1.1 Android 系统整体架构:
我们先看一下多媒体框架在整个 Android 系统所处的位置 :
从框架图可以看出 Media Framework 处于 Libraries 这一层,这层的 Library 不是用 Jav a
实现,一般是 C/C++ 实现,它们通过 Java 的 JNI 方式调用 。
1.2 多媒体架构:
基于第三方 PacketVideo 公司的 OpenCORE platform 来实现 , 支持所有通用的音频,视频,
静态图像格式 。 CODEC( 编解码器 ) 使用 OpenMAX 1L interface 接口进行扩展,可以方便得支 持
hardware / software codec plug-ins 。 支持的格式包括: MPEG4 、 H.264 、 MP3 、 AAC 、 AMR 、 JPG
、
PNG 、 GIF 等。
� Open Core 多媒体框架有一套通用可扩展的接口 , 针对第三方的多媒体遍解码器 、 输入
、
输出设备等等。
� 多媒体文件的播放,下载,包括 3GPP, MPEG-4,AAC and MP3 containers
� 流媒体文件的下载,实时播放,包括: 3GPP, HTTP and RTSP/RTP
� 动态视频和静态图像的编码,解码,例如: MPEG-4, H.263 and AVC (H.264), JPEG
� 语音编码格式: AMR-NB and AMR-WB
� 音乐编码格式: MP3, AAC, AAC+
� 视频和图像格式: 3GPP, MPEG-4 and JPEG
� 视频会议:基于 H324-M standard
Anroid2.3 系统在多媒体方面则会提供全新的音效 API ,并且还支持 VP8 、 WebM 格式多媒体
文件,并且还可以用 AAC 、 AMR wideband 来录下更高质素的声音文件。
【
【
【
【 eoe
eoe
eoe
eoe Android
Android
Android
Android 特刊
特刊
特刊
特刊 】
】
】
】 第十五期
第十五期
第十五期
第十五期
本文档由 eoeAndroid
eoeAndroid
eoeAndroid
eoeAndroid 社区组织策划,整理及发布,版权所有,转载请保留
!
!
!
!
www.eoeandroid.com
www.eoeandroid.com
www.eoeandroid.com
www.eoeandroid.com 做最棒的 Android
Android
Android
Android 开发社区!
1.3 OpenCore 介绍 :
Open Core 是 Android 多媒体框架的核心,所有 Android 平台的音视频采集,播放的操作都
是通过它来实现。
OpenCore 的另外一个常用的称呼是 PacketVideo 。 事实上 , PacketVideo 是一家公司的名称
,
而 OpenCore 是这套多媒体框架的软件层的名称 。 在 Android 的开发者中间 , 二者的含义基本相同 。
通过 Open Core 程序员可以方便快速的开发出想要的多媒体应用程序 , 例如 : 音视频的采集
,
回放,视频会议,实时的流媒体播放等等应用。
对比 Android 的其它程序库, OpenCore 的代码非常庞大,它是一个基于 C++ 的实现,定义了
全功能的操作系统移植层,各种基本的功能均被封装成类的形式,各层次之间的接口多使用继承
等方式。
OpenCore 是一个多媒体的框架,从宏观上来看,它主要包含了两大方面的内容:
PVPlayer : 提供媒体播放器的功能,完成各种音频 (Audio) 、视频 (Video) 流的回放
(Playback) 功能 .
PVAuthor : 提供媒体流记录的功能 , 完成各种音频 (Audio) 、 视频 (Video) 流的以及静态
图像捕获功能 .
PVPlayer 和 PVAuthor 以 SDK 的形式提供给开发者,可以在这个 SDK 之上构建多种应用程序
和服务。在移动终端中常常使用的多媒体应用程序,例如媒体播放器、照相机、录像机、录音机
等等。
为了更好的组织整体的架构, OpenCore 在软件层次在宏观上分成几个层次 :
【
【
【
【 eoe
eoe
eoe
eoe Android
Android
Android
Android 特刊
特刊
特刊
特刊 】
】
】
】 第十五期
第十五期
第十五期
第十五期
本文档由 eoeAndroid
eoeAndroid
eoeAndroid
eoeAndroid 社区组织策划,整理及发布,版权所有,转载请保留
!
!
!
!
www.eoeandroid.com
www.eoeandroid.com
www.eoeandroid.com
www.eoeandroid.com 做最棒的 Android
Android
Android
Android 开发社区!
OSCL : Operating System Compatibility Library ( 操作系统兼容库 ) ,包含了一些操作系
统底层的操作 , 为了更好地在不同操作 进行 系统移植 。 包含了基本数据类型 、 配置 、 字符串工具
、
IO 、错误处理、线程等内容,类似一个基础的 C++ 库。
PVMF : PacketVideo Multimedia Framework(PV 多媒体框架 ) ,在框架内实现一个文件解析
(parser) 和组成 (composer) 、 编解码的 NODE , 也可以继承其通用的接口 , 在用户层实现一些 NODE 。
PVPlayer Engine : PVPlayer 引擎。
PVAuthor Engine : PVAuthor 引擎。
事实上 , OpenCore 中包含的内容非常多 : 从播放的角度 , PVPlayer 的输入的 (Source) 是文件
或者网络媒体流 , 输出 (Sink) 是音频视频的输出设备 , 其基本功能包含了媒体流控制 、 文件解析
、
音频视频流的解码 (Decode) 等方面的内容。
除了从文件中播放媒体文件之外 , 还包含了与网络相关 的 RTS P 流 (Real Time Stream Protocol,
实时流协议 ) 。在媒体流记录的方面, PVAuthor 输入的 (Source) 是照相机、麦克风等设备,输出
的 (Sink) 是各种文件,包含了流的同步、音频视频流的编码 (Encode) 以及文件的写入等功能。
在使用 OpenCore 的 SDK 的时候,有可能需要在应用程序层实现一个适配器 (Adaptor) ,然后
在适配器之上实现具体的功能,对于 PVMF 的 NODE 也可以基于通用的接口,在上层实现,以插件
的形式使用。