网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
利用ATL实现QuickTime多媒体文件播放
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式

摘要  本文主要介绍了Windows平台上Visual C++ 6利用ATL库和QuickTime SDK开发播放QuickTime多媒体软件。为从事多媒体播放开发工作者提供借鉴和参考。

关键词  多媒体 播放 QuickTime ATL



1 前言

在当今多媒体播放软件主要有Windows media player、Real player和QuickTime。 Apple公司的QuickTime于1991年登台亮相,是Apple公司面向专业视频编辑、Web网站创建和CD-ROM内容制作领域开发的多媒体技术平台,QuickTime支持几乎所有主流的个人计算机平台,是数字媒体领域事实上的工业标准,是创建3D动画、实时效果、虚拟现实、A/V和其他数字流媒体的重要基础。

由于众多企业有对QuickTime player应用的需求,在国内外相关资料中有用Windows SDK或MFC的相关应用,本文试用小巧的ATL库和QuickTime SDK开发定制QuickTime 多媒体播放软件做了分析。



2 QuickTime Windows程序的开发概述

2.1开发前的准备

登陆Apple官方网站下载QuickTime SDK和了解有关技术资料

由于QuickTime原先是为Mac OS设计,所以它里面的许多概念和函数的调用都是面向Mac。

表1 Windows and QTML 术语比较

Windows 术语
QTML 对应术语

Message ( MSG )
Event ( EventRecord )

Graphics Device Interface (GDI)
QuickDraw

Device context ( DC )
Graphics port ( CGrafPort )

Window handle ( HWND )
Window pointer ( CWindowPtr )

Common Dialog Box Library
Standard File Package


对于一个原来是Windows程序员必须对于一些QuickTime概念有些最基本的了解才能比较快的掌握典型QuickTime Windows程序的开发。

2.2开发基本步骤

开发一个简单的QuickTime Windows程序必须采取下面基本步骤加入到Windows应用中。

2.2.1在程序的开头初始化QuickTime媒体层(InitializQTML)和QuickTime(EnterMovies)。

2.2.2和电影窗口建立图形端口的关联(CreatePortAssociation)。

2.2.3打开电影(OpenMovieFile)和得到电影的句柄(NewMovieFromFile)。

2.2.4创建在屏幕上显示电影图像的控件(NewMovieController)。

2.2.5在Windows处理函数中,将接收的Windows消息转换为QTML事件(WinEventToMacEvent)并将它们传到电影控件处理(MCIsPlayerEvent)。

2.2.6如果不在用到,释放电影句柄(DisposeMovie)和电影控件(DisPoseMovieController)。

2.2.7当销毁窗口时,破坏电影图形端口的关联(DestroyPortAssociation)。



3 在ATL上实现播放

3.1用ATL创建Windows窗口

     以CWindowImpl为基类,编写自己的窗口类CQTVideoWnd。并且定义宏来接收窗口消息。

#define MY_QT_MSG_HANDLE(func)   \

     {    \

         BOOL bHandled = TRUE;     \

          lResult; \

          func(uMsg,wParam,lParam,bHandled);  \

         if(bHandled)     \

             return TRUE;     \

     }



class CQTVideoWnd:

     public CWindowImpl<CVideoPlayerQT>

{

  public:

    CQTVideoWnd(HWND hParent, RECT& rc, IVideoPlayerNotifySink* pVPSink);

    virtual ~ CQTVideoWnd();



&
  • 下一篇资讯: VC下打印机的使用
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号