Android的多媒体框架OpenCore介绍_第1页
Android的多媒体框架OpenCore介绍_第2页
Android的多媒体框架OpenCore介绍_第3页
Android的多媒体框架OpenCore介绍_第4页
Android的多媒体框架OpenCore介绍_第5页
已阅读5页,还剩37页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一部分OpenCore 概述Ope nCore 的另外一个常用的称呼是Packetvideo ,它是An droid 的多媒体核心。在防站的过程中,Packetvideo 是一家公司的名称,而 Ope nCore是这套多媒体框架的软件层的 名称。在 An droid的开发者中间,二者的含义基本相同。对比An droid的其它程序库,OpenCore的代码非常庞大,它是一个基于C+的实现,定义了全功能的操作系统移植层, 各种基本的功能均被封装成类的形式,各层次之间的接口多使用继承等方式。Open Core是一个多媒体的框架,从宏观上来看,它主要包含了两大方面的内容:PVPlayer :提供媒体

2、播放器的功能,完成各种音频(Audio )、视频(Video )流的回放(Playback )功能PVAuthor :提供媒体流记录的功能,完成各种音频(Audio )、视频(Video )流的以及静态图像捕获功能PVPlayer和PVAuthor以SDK的形式提供给开发者,可以在这个 SDK之上构建多种应用 程序和服务。在移动终端中常常使用的多媒体应用程序,例如媒体播放器、照相机、录像机、录曰机等等。 ijlKMliu, 5*TOCM1 叫FlijjwrFacHin,9+ 1 illl+ AddLJ.S;in L; h1 片 llilrt雹h. mili Miri71怙卫I S* Iini在

3、Player Engine的实现中,包含了编解码和流控制等功能,而输出的介质需要从外部设置近来。PVPIayerl nteface 定义的接口基本是按照操作顺序的,主要的接口如下所示复制代码1. PVCommandIdAddDataSource(PVPlayerDataSource &aDataSource,const OsclAny*aContextData = NULL);PVCommandldInit(const OsclAny* aContextData=NULL);2. PVCommandIdAddDataSink(PVPIayerDataSink&aDataSink, constO

4、sclAny* aContextData = NULL);3.PVCommandIdPrepare(constOsclAny* aContextData=NULL);4.PVCommandIdStart(constOsclAny* aContextData =NULL);5.PVCommandIdPause(constOsclAny* aContextData=NULL);6.PVCommandIdResume(const OsclAny* aContextData=NULL);7.PVCommandIdStop(constOsclAny* aContextData =NULL);8.PVCo

5、mmandIdRemoveDataSink(PVPIayerDataSink&aDataSink, constOscIAny* aContextData = NULL);9. PVCommandIdReset(const OsclAny* aContextData =NULL);10. PVCommandIdRemoveDataSource(PVPlayerDataSource&aDataSourceconst OsclAny*aContextData = NULL);这里面的DataSink可能包含Video的输出和Audio的输出两者部分。在pv_player_types.h 文件中,定义

6、了 Player 的状态机,以 PVP_STATE_开头, 如下所示:复制代码1. typedef enum2. 3. PVP_STATE_IDLE =1,4.PVP_STATE_INITIALIZED2,5. PVP_STATE_PREPARED =3,6. PVP_STATE_STARTED=4,7. PVP_STATE_PAUSED =5,8. PVP_STATE_ERROR=69. PVPIayerState;PVPlayerlnterface 中的各个操作如果成功,可以更改 Player的状态机:初 始化的时候Player是PVP_STATE_IDLE状态,调用In it后,进入 P

7、VP_STATE_INITIALIZED 状态;调用 AddDataSink,进入 PVP_STATE_PREPARED状态;调用 Prepare 后,进入 PVP_STATE_PREPARED 状态;调用start后进入PVP_STATE_STARTED状态,之后可以调用pause进 入 PVP_STATE_PAUSED 状态。PVP_STATE_STARTED和PVP_STATE_PAUSED状态是播放情况下的状态,可 以使用start和pause函数在这两个状态中切换。在播放过程中,调用stop可以返回PVP_STATE_INITIALIZED状态,在调用 RemoveDataSourc

8、e 返回 PVP_STATE_IDLE 状态。5.3 An droid Player Adapter在an droid目录中定义为Player的适配器,这个目录主要包含的文件如下所示:an droid |- An droid.mk|- an droid_audio_mio.cpp|- an droid_audio_mio.h|- an droid_audio_output.cpp|- an droid_audio_output.h|- an droid_audio_output_threadsafe_callbacks.cpp|- an droid_audio_output_threadsafe_callbacks.h|- an droid_audio_stream.cpp|- an droid_audio_stream.h|- an droid_log_appe nder.h|- an droid_surface_output.cpp|- an droid_surface_output.h|- mediasca nn er.cpp|- metadatadriver.cpp|- metadatadriver.h|- playerdriver.cpp|- playerdriver.h-thread_i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论