基于VC开发工具的媒体播放器软件设计—毕业设计论文_第1页
基于VC开发工具的媒体播放器软件设计—毕业设计论文_第2页
基于VC开发工具的媒体播放器软件设计—毕业设计论文_第3页
基于VC开发工具的媒体播放器软件设计—毕业设计论文_第4页
基于VC开发工具的媒体播放器软件设计—毕业设计论文_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

基于基于 VC+VC+开发工具的媒体播放器软件设计开发工具的媒体播放器软件设计 目目 录录 基于 VC+开发工具的媒体播放器软件设计 .4 A SOFTWARE OF MEDIA PLAYER DESIGNED BY VC+ PROGRAM LANGUAGE.4 一、引 言5 1.1 课题研究的目的和技术发展的现状 5 1.1.1 研究本课题的目的 5 1.1.2 技术应用的基本现状 5 1.2 论文完成的主要工作与课题研究的难点所在 6 1.2.1 论文完成的主要工作 6 1.2.2 本课题的研究难点 6 二、媒体格式简介 .7 2.1 什么是媒体? 7 2.1.1 媒体 .7 2.1.2 多媒体 .8 2.2 浅议数字音、视频格式 8 2.2.1 WAV 格式 .8 2.2.2 MIDI 格式 9 2.2.3 CD 格式 9 2.2.4 MP3 格式 .9 2.2.5 WAV 格式 .9 2.2.6 MP4 格式 10 2.2.7 QuickTime 格式 .10 2.2.8 DVD 格式 10 2.2.9 RealAudio 格式 .11 2.2.10 AIFF 格式 11 2.2.11 ASF 格式 11 2.3 常见播放器 .11 2.3.1 Real Player 12 2.3.2 Windows Player.12 2.3.3 Quick Time Player .12 三、MCI 命令接口编程 12 3.1 MCI 设备 13 3.2 MCI 函数与命令 13 3.2.1 MCI 命令.14 3.2.2 MCI 命令消息接口方式.16 3.2.3 MCI 命令字符串接口方式.19 四、软件需求分析 20 4.1需求分析20 4.2可行性研究20 五、软件开发与设计 21 5.1 程序设计的基本思想 .21 5.1.1 基本界面设置 21 5.1.2 打开文件,添加列表 22 5.1.3 播放控制 22 5.1.4 对列表的控制 23 5.1.5 菜单设置 23 5.2 程序设计的详细说明 .23 5.2.1 界面设置 23 5.2.2 打开文件,添加列表 .24 5.2.3 播放控制 .24 5.2.4 对列表控制 .25 5.2.5 菜单设置25 六、软件设计结果25 6.1主界面26 6.2打开文件27 6.3列表控制27 6.4菜单控制27 七、软件评价28 7.1软件的特点28 7.2软件的不足28 八、结束语28 参考文献.29 基于 VC+开发工具的媒体播放器软件设计 摘摘 要要:目前常见的多媒体软件应该说各有特色,但是几乎每一个都 存在着不如人意的地方。我的课题是“基于 VC开发工具的媒体播放 器软件设计 ”,首先是初步介绍一些当前的媒体及媒体播放器,然后是详 细介绍一个由本人设计的多媒体播放器cnplayer。该播放器是基于 MFC 集成开发环境,利用系统的MCI(media controller interface) 命令接口来编程,具有体积小,支持的播放格式多、系统资源占用少、支 持播放列表编辑、支持各种视频格式等功能优势,还实现了CD 抓轨。 关关键键词词 :媒体播放器; MCI;播放列表;音频;视频 A Software Of Media Player Designed by VC+ Program Language Abstract: There are different characteristic among the normal multimedia player at present, but there are shortcoming for all of these software nearly. My center is “A Software Of Media Player Designed by VC+ Program Language “.Firstly, let me introduce those media formats and players at present, then there is a particular presentation for the media player that designed by myself-cnplayer. This player is based on MFC, referring to MCI(media controller interface) from system, having many good functions such as little size, supporting many kinds of format of media, taking up less system resource, supporting list control for playing item and catch track of CD. Key words: media player;MCI;play list;audio;video 一一、引引 言言 多媒体技术的概念和应用出现于 20 世纪 80 年代初期,经过十余年的发展, 随着计算机科学网络的普及和多媒体技术的发展,已成为计算机领域发展的热 点技术,针对目前各种媒体格式,如何简单方便的播放各类媒体已成为人们普 遍关注的问题,而媒体播放器的开发也变得十分重要。 1.1 课题研究的目的和技术发展的现状 1.1.1 研究本课题的目的 随着技术的发展,多媒体素材类型也增多,包括音频、视频、图像、动画 等,由于音视频、图像等的信息容量大,受硬件条件限制,以往多媒体应用并 不广泛,随着硬件技术的不断提高,多媒体技术已为各类人员广泛使用,开发 多媒体课件、网络课程、网站、应用软件、管理项目等均需利用多媒体素材, 因此开发制作这一播放器具有备现实意义,与其它多媒体播放器比较,这一多 媒体播放器具有功能强大、占用空间小的特点,它与现有多媒体资源应用状况 紧密结合,既具有很强的直观感,又不失一般性。 1.1.2 技术应用的基本现状 Microsoft 公司 1998 年推出了 Visual C+60,它是支持 Win32 平台应用 程序(application)、服务(service)和控件(control)开发的可视化编程的集成环境。 与 VC+50 的最大不同之处是它的帮助功能更强大,MSDN(Microsoft Developer Networking)为包括 VC+60 在内的所有微软的程序产品提供在线帮 助;另外,类的对象的可用成员函数、成员变量及函数的参数类型与个数都能 动态显示在屏幕上,用户无须记住那些复杂而又枯燥乏味的函数名及复杂的参 数,这无疑使得用 VC+编程更加容易。所以 VC60 可谓是 Microsoft 公 司的王牌产品,编程功能强大而赢得广大程序的偏爱。 多媒体技术已经在如下若干方面开展了有效的应用:多媒体管理信息系 统、展示系统;多媒体电子出版物(Title);计算机辅助教学、教育培训; 计算机艺术制作、设计;计算机娱乐游戏、双向电影;协同工作。有发 下三大发展趋势:进一步完善计算机支持的协同工作环境;智能多媒体技术; 把多媒体信息实时处理和压缩编码算法集成到 CPU 中。 1.2 论文完成的主要工作与课题研究的难点所在 针对如上所述的研究方向,本课题“基于 VC开发工具的媒体播放器 软件设计”的主要任务是深入理解各种媒体格式,开发出适用的播放器软件。 因此应解决的主要问题是如何把你了解的多媒体和 VC 知识应用到实际编 程当中去及编制的应用软件的可用性、易用性、健壮性。 1.2.1 论文完成的主要工作 根据学习研究,本媒体播放器的开发基于 VC MFC 的对话框,利用 Windows MCI(Media Control Interface)控件和 VC60 自带的 ActiveX 控 件ActiveMovieControl Object 来实现各类媒体格式的播放及程序界面处 理。 首先确定要解决的问题是弄清楚 MCI 函数与命令消息的名称类型和功能; 其次是通过分析媒体播放的具体过程,在打开媒体设备的过程中应用程序需要 做哪些事情,以便在应用程序中加入对这些过程支持的代码;在对应用程序的 流程有了大致的轮廓以后(最好画出流程图) ,在开始考虑程序框架的设计,应 用程序外观的设计;最后也是最关键的就是编写实现播放媒体的代码将播放器 的基本功能实现,紧接着就是程序的调试和完善。 1.2.2 本课题的研究难点 本课题的难点如下: 1、对于 VC集成开发工具的熟练使用,特别是 MFC 的使用,重点放 在界面设计; 2、各类媒体设备的播放函数及相应的命令; 3、播放列表的生成及其操作(删除而不影响其他文件的播放等) ; 4、CD 音轨的抓并转换格式。 以上各点构成了本软件的难点,在克难过程中,我的分析问题解决问题的 能力有了很大的进步,经过努力,一个占用空间小、简单实用的小型媒体 播放器终于完成了。我开发的媒体播放器支持所有 media player 支持的媒 体格式的播放及其他 AVI 视频的播放,实现了对播放列表的控制,CD 抓 轨等功能。 二二、媒媒体体格格式式简简介介 2.1 什么是媒体? 2.1.1 媒体 一般来说,媒体(medium,复数形式为 media)是一种信息发布和表现的方 法,如正文、图形、语音、音乐等,可按不同的标准分类。CCITT 将媒体定义 为以下五种: 感觉媒体(Perception medium):能直接作用于人的感官,使人产生感觉的 媒体。如语言、音乐、图形、活动图像、文本等。我们所讲的“多媒体”意义 上的媒体,主要是指这一类媒体。感知媒体帮助人们来感知环境。要解决的问 题是:人在计算机环境中如何感知信息?就目前而言,人类主要靠视觉和听觉 来感知环境的信息,触觉作为一种感知方式也慢慢引入到计算机系统中。 表示媒体(Representation medium):为传输感觉而研究出来的中间手段, 以便更有效地将感觉从一地传往另一地。表示媒体的特征用计算机内部表示来 刻画。要解决的主要问题是:计算机信息如何编码?例子有: 文本字符用 ASC或 EBCDIC 码表示。 图像可以用 JPEG 格式 BMP 格式编码。 组合音频/视频序列可以用不同的 TV 标准格式(PAL、SECAM 等)编码。 表现媒体(Perception medium):用于信息传输中电信号和感觉媒体之间转 换所用的媒体,意指信息输入/输出的工具和设备。要解决的问题是:信息通过 何种媒体输入到计算机中或从计算机中输出?输出媒体的例子有屏幕、纸和喇 叭,而输入媒体的例子有键盘、鼠标、摄像机和麦克风等。 存储媒体(Storage medium):用于存储表示媒体的载体。数据存储并不局 限于计算机的部件,因此,纸也是一种存储媒体。要解决的问题是:信息存储 在什么地方?存储媒体的例子有:缩微胶片、磁盘等。 传输媒体(Transmission medium):用来将表示媒体从一地传输到另一地的 物理实体。要解决的问题是,在什么上面传输信息?目前主要使用网络来进行 信息传输,网络介质有同轴电缆、光纤等,无线方式进行通信正变得越来越广 泛。 2.1.2 多媒体 从字面上看,所谓多媒体 multimedia,就是多种媒体的综合,多媒体处理 技术涉及到以上五种媒体形式。但这样的理解没有接触到多媒体概念的特定的 内涵,是远远不够的。为了辨析多媒体的含义,我们给出两个多媒体定义进行 比较: 多媒体是指这样的一个计算机系统:交互式综合处理多种媒体信息 文本、图形、图像和声音等,使多种信息建立逻辑连接,集成为一个具有交互 性的系统。(Lippincatt ,Byte 1990 年) 多媒体是下面两种以上媒体组成的结合体:文本、图形、动画、图像、 视频、声音等。(IBM ,multimedia Foundation,1990 年) 显然,定义是有问题的,因为按这个定义,电视节目就可以看作是多 媒体。这是因为,这个定义没有体现出多媒体计算机技术的关键特性。定义 较好地体现了这一点:即多媒体的含义除多种媒体外,还包括集成性和交互性 两个重要的特性。 2.2 浅议数字音、视频格式 首先,我们来明确一下数字音、视频的概念,它是指一个用来表示声音强 弱的数据序列,由模拟声音经抽样、量化和编码后得到的。简单地说,数字音、 视频的编码方式就是数字音、视频格式,我们所使用的不同的数字音、视频设 备一般都对应着不同的音频文件格式。常见的数字音、视频格式有: 2.2.1 WAV 格式 WAV 格式是微软公司开发的一种声音文件格式,也叫波形声音文件,是最 早的数字音、视频格式,被 Windows 平台及其应用程序广泛支持。WAV 格式支 持许多压缩算法,支持多种音频位数、采样频率和声道,采用 44.1kHz 的采样 频率,16 位量化位数,因此 WAV 的音质与 CD 相差无几,但 WAV 格式对存储空 间需求太大不便于交流和传播。 2.2.2 MIDI 格式 MIDI 是 Musical Instrument Digital Interface 的缩写,又称作乐器数 字接口,是数字音乐/电子合成乐器的统一国际标准。它定义了计算机音乐程序、 数字合成器及其它电子设备交换音乐信号的方式,规定了不同厂家的电子乐器 与计算机连接的电缆和硬件及设备间数据传输的协议,可以模拟多种乐器的声 音。MIDI 文件就是 MIDI 格式的文件,在 MIDI 文件中存储的是一些指令。把这 些指令发送给声卡,由声卡按照指令将声音合成出来。 2.2.3 CD 格式 大家都很熟悉 CD 这种音乐格式了,扩展名 CDA,其取样频率为 44.1kHz,16 位量化位数。CD 存储采用了音轨的形式,又叫“红皮书”格式, 记录的是波形流,是一种近似无损的格式。 2.2.4 MP3 格式 MP3 全称是 MPEG-1 Audio Layer 3,它在 1992 年合并至 MPEG 规范中。MP3 能够以高音质、低采样率对数字音、视频文件进行压缩。换句话说,音频文件 (主要是大型文件,比如 WAV 文件)能够在音质丢失很小的情况下(人耳根本无 法察觉这种音质损失)把文件压缩到更小的程度。 2.2.5 WAV 格式 WMA (Windows Media Audio)是微软在互联网音频、视频领域的力作。WMA 格式是以减少数据流量但保持音质的方法来达到更高的压缩率目的,其压缩率 一般可以达到 1:18。此外,WMA 还可以通过 DRM(Digital Rights Management)方案加入防止拷贝,或者加入限制播放时间和播放次数,甚至是 播放机器的限制,可有力地防止盗版。 2.2.6 MP4 格式 MP4 采用的是美国电话电报公司(AT MCIDEVICEID mciGetDeviceID ( LPCTSTR lpszDevice /设备类型 ); BOOL ( DWORD fdwError, /错误代码 LPTSTR lpszErrorText, /错误描述 UINT cchErrorText /错误描述长度 ); mciGetDeviceID 通过传送 MCI 设备名 lpszDevice 来获取 MCI_OPEN 命令消 息找开 MCI 设备的标识号 wDeviceID,其值可用于 mciSendCommand 的参数 wDeviceID。mciSendCommand 用于向标识号为 wDeviceID 的 MCI 设备发送命令 消息 uMsg。当用送 MCI_OPEN 命令消息打开一个设备时,将自动创建一个设备 标识号。如果设备打开成功,可以从 MCI_OPEN_PARMS 结构的 wDeviceID 数据域 中取得该设备的标识号,该值将保存以供后续的 MCI 命令使用。如果 mciSendCommand 调用成功,则返回值为 0;否则表示设备驱动出错,这时可用 mciGetErrorString 来取得错误信息的文字描述。 MCI 提供一个名为 MCI_ALL_DEVICE_ID 的特殊设备标识号。当前所有已打 开的 MCI 设备都将接收到对 MCI_ALL_DEVICE_ID 发送的任何 MCI 命令。 使用任何一个 MCI 设备前都应先用 MCI_OPEN 打开它。打开 MCI 设备时,要 求指定相应的 MCI_OPEN_PARMS 结构。如果打开设备成功,则该结构的 wDeviceID 域返回 MCI 设备的标识号 ID。 使用 MCI_OPEN 命令消息时可使用的命令消息中表 5 所示。MCI_OPEN_PARMS 结构定义如下: typedef struct DWORD dwCallback; /回调窗口句柄 MCIDEVICEID wDeviceID; /设备打开成功,返回的设备号 LPCSTR lpstrDeviceType; /设备类型 LPCSTR lpstrElementName; /复合设备的设备元素,通常为文件名 LPCSTR lpstrAlias; /指定的设备别名 MCI_OPEN_PARMS; 表3-4 MCI_OPEN 命令消息标志 消息标志意义 MC_OPEN_ALIAS MCI_OPEN_PARMS 结构的 lpstrAlias 域中指定了设备别名 MC_OPEN_ELEMENT MCI_OPEN_PARMS 结构的 lpstrElementName 域中指定了设备元素 MC_OPEN_SHAREABLE 按共享设备方式打开设备 MC_OPEN_TYPE MCI_OPEN_PARMS 结构的 lpstrDeviceType 域中指定了设备类型 MC_OPEN_TYPE_ID MCI_OPEN_PARMS 结构的 lpstrDeviceType 域中指定了设备类型 ID 打开一个简单的 MCI 设备不需要指定设备元素,即不需要指定一个数据文 件,所以可以仅仅指定 MCI_OPEN_PARMS 结构中的 wDeviceID 和 lpstrDeviceType 两个数据域。要打开一个复合的 MCI 设备,必须指定设备元 素数据域 lpstrElementName 和设备类型数据域 lpstrDeviceType。对于打开复 合 MCI 设备,有以下 3 种方式可供选择: 1) 为确定 MCI 设备的性能,可以只指定设备的类型来打开 MCI 设备。这 时,只允许确定 MCI 设备的性能,然后关闭设备,不般不能进行其它 的操作。 2) 为使一个设备元素与指定设备相联系,应同时指定设备元素(数据文 件名)和设备类型。这时可对设备进行相应的各种操作。 3) 在使用隐含的 MCI 设备时,可只指定 MCI 设备(数据文件名) ,而把设 备类型指定为 NULL;MCI 将根据设备元素的扩展名从系统定义中选择 隐含约定的 MCI 设备。 应用程序在使用完一个 MCI 设备后应明确地关闭该 MCI 设备。MCI_CLOSE 命令消息用于关闭并释放 MCI 设备,即取消应用程序对 MCI 设备或设备元素的 访问权。 当用 MCI_SYSINFO 命令消息获取 MCI 设备系统信息时,需要在 mciSendCommand 的 dwParam 参数中指定 MCI_SYSINFO_PARMS 结构的地址,系统 信息将通过该结构返回。与 MCI_SYSINFO 命令消息相关的消息标志如表 6 所示。 MCI_SYSINFO_PARMS 结构定义如下: typedef struct DWORD dwCallback;/回调窗口句柄 LPSTR lpstrReturn; /返回信息缓冲区地址 DWORD dwRetSize; /返回信息大小 DWORD dwNumber; /索引号 UINT wDeviceType; /设备类型 MCI_SYSINFO_PARMS; 表 3-5 MCI_SYSINFO 命令消息标志 消息标志意义 MCI_SYSINFO_QUANTITY 返回指定的设备类型的数目,如与 MCI_SYSINFO_OPEN 一起使 用,则仅返回已打开的设备的数目 MCI_SYSINFO_NAME 返回设备名,如与 MCI_SYSINFO_OPEN 一起使用,则仅返回已 打开的设备的名称 MCI_SYSINFO_OPEN 仅返回已打开设备的信息 MCI_SYSINFO_INSTALLNAME 指定设备的安装名称 在使用 MCI 设备时,还应注意共享、等待与通告等标志的使用。 3.2.3 MCI 命令字符串接口方式 MCI 命令字符串使用 ASCII 字符串来发送驱动 MCI 设备的命令,这种方式 采用的接口函数有 mciSendString、mciGetErrorString。 mciSendString 用于向 MCI 设备发送命令字符串,其函数原型如下: MCIERROR mciSendString( LPCTSTR lpszCommand, /指向一个以 NULL 结尾的 MCI 命令字符串,格 /式如下:comm.and device_name argument LPTSTR lpszReturnString, /指向一个用于存储 MCI 命令执行后返回 的/字符串信息的缓冲区 UINT cchReturn, /缓冲区大小 HANDLE hwndCallback /指定一个接受 MM_MCINOTIFY 的窗口句柄,除 /非 MCI 命令中包含了 notify 标志,否则该参数可忽 略。 ); 四、软件需求分析 4.1需求分析 随着计算机技术的发展和网络的普及,多媒体素材类型越来越多,包括音 频、视频、图像、动画等,由于音视频、图像等的信息容量大,受硬件条件限 制,以往多媒体应用并不广泛,随着硬件技术的不断提高,多媒体技术已为各 类人员广泛使用,开发多媒体课件、网络课程、网站、应用软件、管理项目等 均需利用多媒体素材。本软件是为满足部分人的浏览需求而开发的,能打开多 种媒体格式,小巧简单,此外,为了方便使用,还具有对播放列表进行操作的 功能,因此开发制作这一播放器具有备现实意义。 4.2可行性研究 要开发一个软件程序,其方案十分重要。一个合理可行的方案有助于减少 程序员的工作量、缩短开发周期,更重要的是可以开发出运行效率更高、可移 植性更好、健壮性更强的代码。 以下是本程序的方案论证: 本程序的开发用的是 VC+的 MFC 集成开发环境,开发本程序的方案大概有 如下二种: 1、利用 VC 开发环境提供的 ActiveX 控件ActiveMovieControl Object 2、利用系统自带的 MCI 命令接口来编程。 (1)第一种方法是使用 ActiveX 控件,MFC 可以利用 “ActiveMovieControl Object”控件直接操作,实现起来非常简单,但用到的 是完全别人的东西,故而不是太好。 (2)第二种方法是使用系统自带的 MCI 命令接口。MCI 包含在系统的 MMSYSTEM.H 文件中,参数较多,功能比较齐全,虽然使用起来比较烦琐,但是 更具有开发意义。 综上所述,使用系统自带的 MCI 命令接口来编程的方法是比较理想的选择。 以下的开发设计流程就是基于第二种方案的设计流程。 五、软件开发与设计 5.1 程序设计的基本思想 最初运用 MFC,建立对话框为基本框架。因为本软件是以系统自带的 MCI 命令接口为基础,所以为丰富本软件,将重点和难点放在了界面设计方面。 5.1.1 基本界面设置 在基本界面确定后,添加各类控件,如图所示: 将 Button 定义为自定义 CButtonST 按纽类的对象,进度滑条定义为自定义 的 CMySliderControl 类的对象,时间显示静态文本定义为自定义的 CMatrixStatic。各个控件的位置是由程序控制,所以原来摆在什么地方并不影 响程序显示出来的效果。 5.1.2 打开文件,添加列表 打开文件有两种方法,一是通过主面板上打开按纽,二是通过菜单中文件 的子菜单打开文件。 添加文件:CButtonST,IDC_ADD,m_add 5.1.3 播放控制 播放控制包括:播放(暂停) ,停止,上一首,下一首,循环,播放进程控 制。播放控制也可在菜单中进行控制。 1. 播放:CButtonST, IDC_PLAY, m_play 2. 暂停:CButtonST, IDC_PAUSE, m_pause 3. 停止:CButtonST, IDC_STOP, m_stop 4. 上一首:CButtonST, IDC_PREVIOUS, m_previous 5. 下一首:CButtonST, IDC_NEXT, m_next 图 51 对话框基本框架 6. 循环:CButtonST, IDC_REPEAT, m_repeat 7. 播放进程控制 CMySliderControl, IDC_SLIDER, m_slider 5.1.4 对列表的控制 列表的控制包括:添加文件,删除当前所选项,删除全部,在列表中双击 播放,列表的隐藏弹出。设置如下: 1. 添加文件:CButtonST, IDC_ADD, m_add 2. 删除当前所选项:CButtonST, IDC_DEL, m_del 3. 删除全部:CButtonST, IDC_DELALL,m_delall 4. 列表中的双击播放:LIST BOX 本身的 LBN_DBLCLK 消息函数 OnDblclkList() 5. 列表的隐藏弹出:CButtonST, IDC_HIDLIST, m_hid 5.1.5 菜单设置 除去上述菜单控制之外,菜单中还包括音量控制,窗口总在最上。 1. 音量控制:IDC_ONVOICE, m_voice 2. 窗口总在最上:ID_W_TOP 5.2 程序设计的详细说明 5.2.1 界面设置 各个自定义类的声明: 1. CButtonST 类:详细说明请见程序。 2. CMySliderControl 类:详细说明请见程序。 3. CMatrixStatic 类:详细说明请见程序。 先设置基本界面的图形,如下: 图 52 主界面的图 在主对话框的类定义中声明: private: void InitMPlayerFace();/初始化界面 在主对话框的初始化程序里调用该函数,具体定义请参照程序中函数: void CMediaDlg:InitMPlayerFace() 在主界面设置好相应的位置后,就开始定义各个控件的具体功能。 5.2.2 打开文件,添加列表 打开添加文件的程序主要写在按纽的 BN_CLICKED 消息函数里面。程序详见 void CMediaDlg:OnAdd() 5.2.3 播放控制 1)播放:void CMediaDlg:OnPlay() 2)暂停:void CMediaDlg:OnPause() 3)停止:void CMediaDlg:OnStop() 4)上一首:void CMediaDlg:OnPrevious() 5)下一首:void CMediaDlg:OnNext() 6)循环:void CMediaDlg:OnRepeat() 7)播放进程控制 void CMediaDlg:OnReleasedcaptureSlider(NMHDR* pNMHDR, LRESULT* pResult) 以上程序代码详见毕业设计。 5.2.4 对列表控制 1) 添加文件:CButtonST, IDC_ADD, m_add 此函数同上述打开文件 ONADD() 。 2) 删除当前所选项:void CMediaDlg:OnDel() 3) 删除全部:void CMediaDlg:OnDelall() 4) 列表中的双击播放:LIST BOX 本身的 LBN_DBLCLK 消息函数 OnDblclkList() void CMediaDlg:OnDblclkList() 5) 列表的隐藏弹出:void CMediaDlg:OnHidlist() 5.2.5 菜单设置 1)菜单是从按纽出来,而不是原来意义的直接添加在对话框上。 菜单按纽: void CMediaDlg:OnMenu() 2)音量控制是调用系统自带的音量控制程序。语句如下: void CMediaDlg:OnOnvoice() /调用系统的音量控制 ShellExecute(this-m_hWnd, “open“, “sndvol32.exe“, NULL, NULL, SW_SHOWNORMAL); 3)窗口总在最上:void CMediaDlg:OnWTop() 六六、软件设计结果 6.1 主界面 图 6-1 播放主界面(不带播放列表) 图 6-2 播放主界面(带列表) 图 6-3 视频播放 6.2 打开文件 图 6-4 文件打开界面 6.3 列表控制 图 6-5 列表控制界面 6.4 菜单控制 图 6-6 菜单控制界面 七七、软件评价 7.1软件的特点 经过长期的调试和改正,软件基本可以正常运行,基本实现了预实现功能。 除了支持 MICROSOFT MEDIA PLAYER 支持的一切格式外,还支持其他一些音视 频格式。本软件简单小巧,占很少空间。 7.2软件的不足 因为只是试编的软件,不够专业,所以相比现已成熟的各种播放器来,更 显得过于单调,而且功能方面还有待加强。 八八、结束语 通过对整个媒体播放器软件的设计,我不仅对播放器的开发了有一定的了 解,也认识了平常不常接触到的媒体类型及其发展,使我的编程能力了有了很 大的提高。本软件实现在大多数的媒体格式的播放,基本上 Windows Media Player 能播放的格式,本软件都支持,还有其他一些格式。 虽然看起来成果不错,但是一路走过来,也发现了自己还有很多不足。做 毕业设计时让我对 VC的运用更是熟练了很多,而且有了系统地设计软件的 概念,这对我以后的软件开发打下了很好的基础。但是毕竟只是一个人开发, 且技术知识不够,当然不能跟专业的媒体播放器(比如 winamp,windows media player 等)相比,本软件还可以继续开发,比如实现 CD 抓轨,全屏视 频播放等。 “书到用时方恨少” ,只是到要用的时候,才会觉得这句话的有理。在设计 的过程中,时常会碰到问题,往往都是解决完一个,同时又会冒出很多,单单 只靠书上查上没有用的,而且有时候,虽然网络资源丰富,但是搜索水平不够, 也不能找到有效的解决办法,这种时候,向同学老师请教,就会让自己受益很 多。 很遗憾,当时选该课题时,有些想实现的功能,由于知识水平有限,最后 都只是放了一个模块而已,都没有具体的扩展。有些更只是想想,但是没有实 现。总的说来,此次软件设计,让我深刻认识的不足,以后会更加努力。 参考文献 1 精英科技:视频压缩与音频解码技术 ,中国电力出版社,2001 年 8 月第 1 版。 2(美)Steve Mack:流媒体宝典 ,电子工业出版社,2003 年 1 月第 2 版。 3 周长发:Visual C+.NET 多媒体编程 ,电子工业出版社,2002 年 6 月第 1 版。 4 杨竞锐:Visual C+.NET 深入编程(1CD) ,北京希望电子出版社,2002 年 1 月第 1 版,第 8896 页。 5(美)Microsoft 公司(希望图书创作室译):Microsoft Visual C+ MFC Library Reference,Part 1,VOL.1 ,北京希望电子出版社,1999 年 4 月第 1 版,第 100147 页。 6(美)Jeff Prosise(北京博彦科技发展有限公司译):Programming Windows With MFC Second Edition ,清华大学出版社,2001 年 9 月第 1 版,第 159190 页。 7(美)Jeff Prosise(王铁,徐雅骥,童霞,刘宇译):Programming Microsoft.NET ,清华大学出版社,2004 年 4 月第 1 版,第 78123 页。 8曾悠久玛数位科技:Visual C+游戏设计入门 ,机械工业出版社,2002 年 9 月第 1 版。 9辛长安,梅林:VC+编程技术与难点剖析 ,清华大学出版社,2002 年 4 月第 1 版。 10揣锦华:面向对象程序设计与 VC+实践 ,西安电子科技大学出版社,2005 年 2 月 第 3 版。 11(美)Eric J. Braude:Software Design:From Programming to Architecture , 电子工业出版社,2005 年 3 月。 “Are you hungry now?“ “No, I am tired and lazy now; if I pursue you I will not catch you, and if I catch you-through your own slowness and clumsiness-I will not kill you, and if I kill you I will not eat you.“ Nicholas had begun to back away, and at the last; words, realizing that they were a signal, he turned and began to run, splashing through the shallow water. Ignacio ran after him, much helped by his longer legs, his hair flying behind his dark young face, his square teeth-each white as a bone and as big as Nicholass thumbnail-showing like spectators who lined the railings of his lips. “Dont run, Nicholas,“ Dr. Island said with the voice of a wave. “It only makes him angry that you run.“ Nicholas did not answer, but cut to his left, up the beach and among the trunks of the palms, sprinting all the way because he had no way of knowing Ignacio was not right behind him, about to grab him by the neck. When he stopped it was in the thick jungle, among the boles of the hardwoods, where he leaned,.; out of breath, the thumping of his own heart the only . sound in an atmosphere silent and unwaked as Earths long, prehuman day. For a time he listened for any sound Ignacio might make searching for him; there was none. He drew a deep breath then and said, “Well, thats over,“ expecting Dr. Island to answer from somewhere; there was only the green hush. The light was still bright and strong and nearly, shadowless, but some interior sense told him the day, was nearly over, and he noticed that such faint shades as he could see stretched long, horizontal distortions of their objects. He felt no hunger, but he had fasted be- fore and knew on which side of hunger he stood; he was not as strong as he had been only a day past, and by this time next day he would probably be unable to outrun Ignacio. He should, he now realized, have eaten the monkey he had killed; but his stomach revolted at the thought of the raw flesh, and he did not know how he might build a fire, although Ignacio seemed to have done so the night before. Raw fish, even if he were able to catch a fish, would be as bad, or worse, than raw monkey; he remembered his effort to open a coconut-he had failed, but it was surely not impossible. His mind was hazy as to what a coconut might contain, but there had to be an edible core, because they were eaten in books. He decided to make a wide sweep through the jungle that would bring him back to the beach well away from Ignacio; he had several times seen coconuts lying in the sand under the trees. He moved quietly, still a little afraid, trying to think of ways to open the coconut when he found it. He imagined himself standing before a large and raggedly faceted stone, holding the coconut in both hands. He raised it and smashed it down, but when it struck it was no longer a coconut but Mayas head; he heard her nose cartilage break with a distinct, rubbery snap. Her eyes, as blue as the sky above Madhya Pradesh, the sparkling blue sky of the egg, looked up at him, but he could no longer look into them, they retreated from his own, and it came to him quite suddenly that Lucifer, in falling, must have fallen up, into the fires and the coldness of space, never again to see the warm blues and browns and greens of Earth: 1 was watching Satan fall as lightning from heaven. He had heard that on tape somewhere, but he could not remember where. He had read that on Earth lightning did not come down from the clouds, but leaped up from the planetary surface toward them, never to return. “Nicholas.“ He listened, but did not hear his name again. Faintly water was babbling; had Dr. Island used that sound to speak to him? He walked toward it and found a little rill that threaded a way among the trees, and followed it. In a hundred steps it grew broader, slowed, and ended in a long blind pool under a dome of leaves. . Diane was sitting on moss on the side opposite him; she looked up as she saw him, and smiled. “Hello,“ he said. “Hello, Nicholas. I thought I heard you. I wasnt mistaken after all, was I?“ “I didnt think I said anything.“ He tested the dark water with his foot and found that it was very cold. “You gave a little gas

温馨提示

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

评论

0/150

提交评论