最近看过此主题的会员

返回列表 发帖

[Android手机程序] Android教程_Android Media架构

Android教程_Android Media架构



整个MediaPlayer在运行的时候,可以大致上分成Client和Server两个部分,它们分别在两个进程中运行,它们之间使用Binder机制实现IPC通讯。从框架结构上来看,IMediaPlayerService.h、IMediaPlayerClient.h和MediaPlayer.h三个类定义了MeidaPlayer的接口和架构,MediaPlayerService.cpp和mediaplayer.coo两个文件用于MeidaPlayer架构的实现,MeidaPlayer的具体功能在PVPlayer(库libopencoreplayer.so)中的实现。

  IMediaPlayerClient.h用于描述一个MediaPlayer客户端的接口,描述如下所示:

  Java代码:

  class IMediaPlayerClient: public IInterface

  {

  public:

  DECLARE_META_INTERFACE(MediaPlayerClient);

  virtual void notify(int msg, int ext1, int ext2)= 0;

  };

  class BnMediaPlayerClient: publicBnInterface

  {

  public:

  virtualstatus_t onTransact( uint32_t code,

  const Parcel& data,

  Parcel* reply,

  uint32_t flags = 0);

  };

  复制代码

  在定义中,IMediaPlayerClient类继承IInterface,并定义了一个MediaPlayer客户端的接口,BnMediaPlayerClient继承了BnInterface,这是为基于Android的基础类Binder机制实现在进程通讯而构建的。事实上,根据BnInterface类模版的定义BnInterface类相当于双继承了BnInterface和ImediaPlayerClient。这是Android一种常用的定义方式。

  mediaplayer.h是对外的接口类,它最主要是定义了一个MediaPlayer类:

  Java代码:

  class MediaPlayer : public BnMediaPlayerClient

  {

  public:

  MediaPlayer();

  ~MediaPlayer();

  void onFirstRef();

  void disconnect();

  status_t setDataSource(const char*url);

  status_t setDataSource(int fd,int64_t offset, int64_t length);

  status_t setVideoSurface(constsp& surface);

  status_t setListener(constsp& listener);

  status_t prepare();
分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友

TOP

手游开发出了jave还有什么语言好用呢?

TOP

TOP

返回列表

站长推荐 关闭


黑发清纯萌妹脸部插画绘制教程

原画插画教程_黑发清纯萌妹脸部插画绘制教程 黑发清纯萌妹脸部教程-奇幻插画 1.用色块铺出脸部脖子和头发,脸部定好边缘形状 2.用皮肤深色的色块定出五官 ...


查看

无觅相关文章插件