阅读mediaplayer源代码

阅读mediaplayer源代码

ID:9113543

大小:36.00 KB

页数:5页

时间:2018-04-18

阅读mediaplayer源代码_第1页
阅读mediaplayer源代码_第2页
阅读mediaplayer源代码_第3页
阅读mediaplayer源代码_第4页
阅读mediaplayer源代码_第5页
资源描述:

《阅读mediaplayer源代码》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、阅读mediaplayer源代码(first)第一次阅读mediaplayer源代码 2006-1-3 mediaplayer源代码是BREWSDK3.1.4中自带的,一个简单的多媒体应用,2000多行代码,实现了一个支持音频、视频和图片播放,还支持录音的程序。该程序出自高通公司内部开发人员之手,其与高通BREW平台的其他底层应用的实现有异曲同工之妙。该程序的实现充分利用了贯穿于BREW平台的QInterface宏,用C语言巧妙地模仿了面向对象中的多态,继承等特点。感兴趣的朋友,可以在高通的网站上下载最新的

2、SDK安装后,在BREW3.1.4sdkexamplesmediaplayer中可以找到对应的源代码。由于是第一次阅读,很多东西理解还不深刻,叙述难免有偏差,希望大虾们人过留言,帮忙指出错误。给出下载SDK的地址:https://brewx.qualcomm.com/brew/sdk/download.jsp/////////////////////////////////////////////////////////////////////下面是一些结构体的展开,从阅读代码的角度来说,莫名其妙的宏

3、定义给阅读带来了不少麻烦,但是对于程序开发人员来说,精致的宏定义又给开发带来不小的渐变性,从阅读的角度来说,把宏展开,可以清晰地看到程序设计的脉络,不过在开发的过程中,可以直接使用宏,减少代码的输入量,同时也能保证伴随BREW平台升级所带来的兼容性问题。原定义typedefstruct_IWindow IWindow;QINTERFACE(IWindow){  void    (*Enable)(IWindow*po,booleanbEnable);  void    (*Redraw)(IWindow*p

4、o);  boolean (*HandleEvent)(IWindow*po,AEEEventeCode,uint16wParam,uint32dwParam);  void    (*Delete)(IWindow*po);};展开后实际定义typedefstruct_IWindowIWindow;struct_IWindow{  structIWindowVtbl*pvt;};typedefstructIWindowVtblIWindowVtbl;structIWindowVtbl{   void   

5、 (*Enable)(IWindow*po,booleanbEnable);  void    (*Redraw)(IWindow*po);    boolean (*HandleEvent)(IWindow*po,AEEEventeCode,uint16wParam,uint32dwParam);   void    (*Delete)(IWindow*po);};//注意,其实以下的两者是一样的。#defineVTBL(iname)   iname##Vtbl#defineAEEVTBL(iname) 

6、 iname##Vtbl /////////////////////////////////////////////////////////////////////定义了枚举类型MPWindow(程序窗口类型)和MPPlayerWin(播放窗口类型:play,record,image)/////////////////////////////////////////////////////////////////////关于内部几个关键结构体的创建。#defineINHERIT_CWindow(iname)

7、  DECLARE_VTBL(iname)  CMediaPlayer*m_pOwner;  IShell*      m_pIShell;  IDisplay*    m_pIDisplay;  flg           m_bActive:1从命名的角度来看,主要是用来继承父类,虽然是C不过仍然用C++的思想来设计。CWindow是一个基类,其他所有显示的window都是根据这个基类派生出来的。用INHERIT_CWindow这个宏来完成派生功能。//BaseclassofallIWindo

8、wobjects.structCWindow{  IWindowvtIWindow;  CMediaPlayer*m_pOwner;  IShell*      m_pIShell;  IDisplay*    m_pIDisplay;  flg           m_bActive:1;};对应创建函数CWindow_New//Mainwindow:Displaysmainmenu.structCMainWi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。