vc音频播放器(含源文件)
基于Visual C++的音乐播放器设计

基于Visual C++的音乐播放器设计
基于Visual C++的音乐播放器设计主要包括以下步骤:
1.打开Visual C++环境,创建一个新的Visual C++的Windows
桌面应用程序项目。
2.设计音乐播放器的UI界面,包括窗口标题栏、播放控制按钮、进度条、音量调节等。
3.使用Windows多媒体API或第三方音频库,如OpenAL或FMOD等,实现音频的加载、播放、暂停、停止等功能。
4.实现音乐列表的管理功能,可以手动添加文件或文件夹,也
可以通过扫描指定的目录获取音乐列表,并在列表中显示每首歌的
名字、时长、作者、专辑等信息。
5.针对不同的音乐格式提供相应的解码器,如MP3、WAV、AAC、FLAC等,确保能够正常播放所有音乐。
6.实现声音特效和音频可视化功能,例如均衡器、3D环绕声、
频谱分析等,提高音乐播放器的用户体验。
7.为音乐播放器添加快捷键和热键等功能,简化用户的操作流程。
8.测试音乐播放器的各项功能,并修复发现的问题,确保音乐
播放器的稳定性和可靠性。
总之,基于Visual C++的音乐播放器设计需要结合Windows操
作系统的音频框架和第三方音频库,为用户提供高品质、多功能的
音乐播放器。
mp3音乐播放器c语言版

用户在控制台输入不同数据后,应用程序根据不同的数据进行相应的输出,实现各种 Mp3 播放器的功能。
2.2 运行环境
Windows 操作系统。
2.3 基本设计概念和处理流程
系统总体功能流程为:运行程序进入页面,显示软件的版本信息,主要包括版本的版本号, 作者,日期,名称。然后输入任意键会进入主菜单,在这之前会提示是否选择歌曲列表,如果不 选择会自动加载默认的列表路径,默认路径为 d:\\mp3.txt。在主菜单里可以选择播放器的各种 控制功能,比如添加歌曲,显示列表,切换列表,查找歌曲,上一首,下一首,播放模式的选择 退出等选项功能。
进入播放列表后:
进入播放模式后: 进入播放选项后:
4.2 运行控制
开始进入界面: 输入 1 则输入新的路径下的播放列表,输入其他字符进入当前默认的播放列表
进入默认列表播放歌曲,根据提示的数字选择不同的选项,实现不同的功能。
输入 1 播放当前列表歌曲 输入 2 查找歌曲 输入 3 增加歌曲 输入 4 进入选择播放模式选项 输入 5 上一首 输入 6 下一首 输入 7 退出播放器
void stay_play(); void comeback_play(); void measure_volume(); void fast_backward(); void fast_upward(); 。
4 运行设计
//暂停播放 //恢复播放 //调节音量大小 //快进 //快退
4.1 运行模块组合
1.2 背景
说明: 1.软件名称:MP3 播放器。 2.开发小组成员:胥站峰 3.软件平台:windows 操作系统。
1.3 定义
MP3(MPEGAudioLayer-3)是一种数字音频压缩技术,数字压缩速率达到每通道 128kbps,数比 例可以达到 12:1。MP3 播放器的主要作用就是解压压缩的 MP3 数字音频,再现 MP3 音乐,同时为携 带方便还要能存贮 MP3 文件,MP3 歌曲可以从电脑上下载。MP3 播放器主要由 MP3 文件解码部分、 文 件 存 贮 部 分 、文 件 下 载 接 口 和 语 音 播 放 部 分 构 成 。根 据 解 码 的 方 法 播 放 器 可 分 为 软 解 码 和 硬 解 码两种: 软解码是利用控制软件解压缩 MP3 文件,它要求控制器处理速度要快。。
在C#中播放音频文件和视频文件的方法

浅谈在C#中播放音频文件和视频文件的方法摘要:当今时代,多媒体技术迅速发展,人们在生活、学习、娱乐时的重要组成部分就是计算机。
随着计算机性能的逐渐提高,越来越多的多媒体应用出现在了用户的操作系统中。
该文介绍了在c#中如何添加windows media player组件以及该组件的主要属性和方法,并且介绍了如何利用该组件播放音频文件和视频文件。
关键词:音频视频组件中图分类号:tp37 文献标识码:a 文章编号:1674-098x(2013)03(c)-0-01近些年来,多媒体的应用随着网络技术的不断发展已经由单机模式走向了网络模式。
在视频、音频的播放中广泛地采用了网络的数字化流机制。
因为其特有的快速、高效、灵活等特点,得到各个领域用户的广泛青睐。
所以在开发具有视频、音频、图形和游戏等的应用程序时,可以使用visual c#创建基于windows media技术等多媒体组件的应用程序。
1 windows media player组件主要属性、方法在创健c#应用程序的过程中可以使用windows media player组件,这样应用程序就具备了视频和音频的播放功能。
此组件提供了多个方法和属性,用来对多媒体文件进行控制。
(1)url属性:要打开播放的文件的路径或者是超链接,也可以是本地的媒体文件。
(2)controls属性:主要用来控制当前播放的多媒体文件。
(3)play方法:播放音频、视频文件的功能。
(4)pause方法:暂停文件播放的功能。
(5)stop方法:停止文件播放的功能。
2 添加windows media player组件在使用windows media player组件播放音频文件和视频文件之前,必须添加windows media player组件。
具体步骤:(1)用鼠标右键单击“工具箱”,在弹出的快捷菜单中选择“选择项”命令。
(2)在出现的“选择工具箱”对话框中选择“com组件”标签。
C语言音频处理音频读取处理和播放的技巧

C语言音频处理音频读取处理和播放的技巧音频处理是计算机科学领域的一个重要分支,它涉及到音频信号的获取、处理和播放。
在C语言中,可以利用各种库和技巧来实现音频的读取、处理和播放。
本文将介绍一些C语言中常用的音频处理技巧,帮助读者更好地理解和应用音频处理的方法。
一、音频读取技巧1. 使用库文件:C语言中常用的音频读取库文件有libsndfile、libsndfile、PortAudio等。
这些库文件提供了方便的API接口,可以实现从音频文件中读取数据。
2. 了解音频文件格式:在进行音频读取操作前,先要了解所使用的音频文件的格式,比如WAV、MP3、FLAC等。
不同格式的音频文件在存储数据和读取方式上有所不同,需要根据文件格式进行相应的处理。
3. 使用文件指针:通过使用C语言中的文件指针,可以打开音频文件并读取其中的数据。
可以使用fopen()函数打开文件,使用fread()函数读取文件中的数据,并使用fclose()函数关闭文件。
二、音频处理技巧1. 音频采样率的调整:音频采样率是指音频每秒钟采集的样本数,常见的采样率有44.1kHz、48kHz等。
通过控制采样率,可以调整音频的播放速度和音质。
2. 音频音量的调整:通过对音频信号进行放大或缩小的操作,可以调整音频的音量。
可以通过调整音频的幅度或者应用数字信号处理的技术实现音量的调整。
3. 音频滤波:音频滤波是指对音频信号进行滤波处理,去除不需要的频率成分。
可以使用低通滤波器、高通滤波器、带通滤波器等进行音频滤波操作,以改善音频的质量。
三、音频播放技巧1. 使用库文件:在C语言中,可以使用SDL、OpenAL等音频播放库文件来实现音频的播放。
这些库文件提供了方便的接口函数,可以实现音频的播放和控制。
2. 使用多线程:为了保证音频播放的流畅性,在进行音频播放时可以考虑使用多线程。
将音频播放操作放在一个独立的线程中进行,可以避免音频播放对其他操作的阻塞。
vlc播放器架构

acess :访问
• 可以理解为接收、获取、得到数据资源, 包括解析访问源(url)、使用http协议(ftp、 rtsp协议......)建立连接、获取数据等。
demux :解复用
• 就是把通常合在一起的音频和视频分离(还 有可能的字幕),通过分析数据包头来判断 是什么数据文件,需要用什么解码格式。
output
• 音视频模块,提供独立的可操作接口
subtitle 外挂字幕
• 软件解析后,直接发送至输出接口。
6.vlc调用内部接口运行过程
附:直接调用vlc上api播放音视频demo
• • • • • • • • • static void test_media_local(const char** argv, int argc) { libvlc_media_t *md1, *md2, *md3, *md4; libvlc_instance_t *vlc; libvlc_media_t *md; libvlc_media_player_t *mp; const char * file0 = test_default_sample0;//file vlc = libvlc_new (argc, argv); md = libvlc_media_new_path (vlc, file0);
• 而demux部分首先要解析TS流的信息。TS 格式是MPEG2协议的一部分,一般,TS通 常是固定188字节的一个packet,一个TS流 可以包含多个program(节目),一个 program又可以包含多个视频、音频、和文 字信息的ES流;每个ES流会有不同的PID 标示。而又为了可以分析这 些ES流,TS有 一些固定的PID用来间隔发送program和es 流信息的表格:PAT和PMT表。 • 对于VLC播放器,使用库libdvbpsi来解析和 编码TS流.(调用代码可以参见VLC源码 /modules/demux/ts.c。)
VC播放声音函数PlaySound和sndPlaySound

SND_ALIAS_ID
pszSound参数指定了预定义的声音标识符。
SND_ASYNC
用异步方式播放声音,PlaySound函数在开始播放后立即返回。
SND_FILENAME
pszSound参数指定了WAVE文件名。
可以看出,sndPlaySound不能直接播放声音资源。要用该函数播放WAVE文件,可按下面的方式调用:
sndPlaySound("MYSOUND.WAV",SND_ASYNC);
1、直接播出声音文件:
PlaySound("c:\\win95\\media\\The Microsoft Sound.wav", NULL, SND_FILENAME | SND_ASYNC);
注意:参数中的路径使用两个连续的反斜杠转义代表一个反斜杠。
2、把声音文件加入到资源中,然后从资源中播放声音:
Visual C++支持WAVE型资源,用户在资源视图中单击鼠标右键并选择Import命令,然后在文件选择对话框中选择The Microsoft Sound.wav文件,则该文件就会被加入到WAVE资源中。假定声音资源的ID为IDR_STARTWIN,则下面的调用同样会输出启动声音:
PlaySound((LPCTSTR)IDR_STARTWIN, AfxGetInstanceHandle(), SND_RESOURCE | SND_ASYNC);
pszSound参数是WAVE资源的标识符,这时要用到hmod参数。
SND_SYNC
同步播放声音,在播放完后PlaySound函数才返回。
用VC++实现多媒体播放器

用VC++实现多媒体播放器摘要目前常见的多媒体软件应该讲各有特群,然而几乎每一具都存在着别如人意的地点。
我的课题是“基于VC++开辟工具的媒体播放器软件设计”,首先是初步介绍一些当前的媒体及媒体播放器,然后是详细介绍一具由本人设计的多媒体播放器———mediaplayer。
该播放器是基于MFC集成开辟环境,利用系统的MCI(media controller interface)命令接口来编程,具有体积小,支持的播放格式多、系统资源占用少、支持播放列表编辑、支持各种视频格式等功能优势。
关键词媒体播放器;MCI;播放列表;音频;视频AbstractThe common multimedia software should have their characteristics, but almost each one there is no satisfactory manner. My topic is "based on VC + + development tools for media player software design", the first is an introduction to some of the current media and media player, then the detailed design of a multimedia player himself - mediaplayer. The player is based on MFC integrated development enviroXXXent, using the system MCI (media controller interface) command interface to programming, is small,support multi-format playback, occupy less system resources to support the play list editing, support various video formats such as functional advantages.Keywordsmedia player; MCI; play list; audio; video名目一、引言1课题研究的目的和技术进展的现状1.1研究本课题的目的1.2技术应用的基本现状2论文完成的要紧工作3本课题中的重点二、媒体格式简介.1啥是WMF SDK2 WMF SDK体系结构2.1 生成器结构2.2 读取器结构3 WMF SDK编程开辟环境配置三、软件开辟与设计.1操作办法2具体步骤四、系统测试1测试目的2测试环境3测试办法3.1白盒法3.2黑盒法4测试结果五、结束语XXX基于VC++开辟工具的媒体播放器软件设计一、引言多媒体技术的概念和应用浮现于20世纪80年代初期,通过十余年的进展,随着计算机科学网络的普及和多媒体技术的进展,已成为计算机领域进展的热点技术,针对目前各种媒体格式,怎么简单方便的播放各类媒体已成为人们普遍关注的咨询题,而媒体播放器的开辟也变得十分重要。
基于mfc音乐播放器的设计与实现(含源文件)

毕业设计(论文)题目音乐播放系统设计专业信息与计算科学年级 2009级1班学号xxxxxxxxxx姓名xxxxx指导教师xx完成时间:目录摘要 (I)Abstract ..........................................................................................................I I 1 前言 (1)1.1软件开发背景及意义 (1)1.2发展现状及趋势 (1)1.3主要研究方法及过程 (2)2 相关技术简介 (2)2.1 VC技术应用的基本现状 (2)2.2 MCI命令接口编程 (2)2.2.1 MCI命令 (3)2.2.2 MCI命令消息接口方式 (4)2.2.3 MCI命令字符串接口方式 (7)3需求分析 (8)3.1功能需求 (8)3.1.1 播放器的基本控制需求 (8)3.1.2功能需求分析 (8)3.2 运行及其它需求分析 (9)3.3 可行性分析 (9)4 软件结构及界面设计 (10)4.1软件结构设计 (10)4.2 GUI界面设计 (10)5详细设计 (11)5.1文件菜单下的详细设计 (11)5.1.1打开文件设计 (11)5.1.2 打开文件夹设计 (13)5.2播放音乐的详细设计 (13)5.3播放列表的详细设计 (14)5.4歌词显示的详细设计 (15)5.5播放器优化的详细设计 (15)6结论 (17)参考文献 (18)致谢 (19)摘要音乐是一种声音符号,表达人的思想感情。
是人们思想的载体之一。
音乐是有目的和内涵的,其中隐含了作者的生活体验,思想情怀。
一款好的pc音乐播放器不仅能够提供好的音乐播放效果,更能够为用户提供方便的操作。
本设计利用C语言和Visual C++ 编辑工具对播放器进行编写。
同时给出了详细的系统设计过程、部分界面图及主要功能运行流程图,本文还对开发过程中遇到的问题和解决方法进行了详细的讨论,该音乐播放器集播放、暂停、停止、快进、快退、下一曲、上一曲、音量调节等功能与一体,性能良好。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计说明书题目:音频播放器成绩:时间:年月日至年月日课程设计任务书题目音频播放器主要内容:音频播放器,是目前用户选择播放任意格式的音频文件的软件,如酷狗、QQ音乐等。
一般的音频播放器,都可以支持MP3、wave、AU、VOC等文件格式的播放。
在此次设计的音频播放其中,可以实现对音频文件的打开、播放、暂停、停止、上一曲/下一曲、歌词显示等操作。
对于播放器的界面,可以最小化,并显示到托盘。
处于最小化的状态下,依然可以对正在播放的文件进行上述操作。
在此播放器中,最具特点的是在各个操作按钮以及整个界面上添加了位图和能将窗口最小化。
播放器窗口的建立,也有区别与传统的有菜单显示的窗口。
最小化到托盘后,仍可以进行操作,也可以选择退出。
对于实现播放、停止、上一曲/下一曲、添加文件,都是利用CMidi这个类来存放实现这些功能的函数。
需要的时候调用就可以。
为了是界面更美观,让人看起来更舒服,加入了位图背景。
目前还没有实现用户根据自己的喜好来更改背景图案。
主要参考资料:[1]姬涛、周启生,《计算机程序设计基础(上册)》[Z],北京:中国传媒大学出版社,2010[2]谭浩强,《C程序设计教程》[Z],北京:清华大学出版社,2007[3]任哲,《MFC Windows应用程序设计(第二版)》[Z],北京:清华大学出版社,2007完成期限:指导教师签名:课程负责人签名:年月日摘要音频播放器,是目前用户选择播放任意格式的音频文件的软件,如酷狗、QQ音乐等。
一般的音频播放器,都可以支持MP3、wave、AU、VOC等文件格式的播放。
在此次设计的音频播放其中,可以实现对音频文件的打开、播放、暂停、停止、上一曲/下一曲、歌词显示等操作。
对于播放器的界面,可以最小化,并显示到托盘。
处于最小化的状态下,依然可以对正在播放的文件进行上述操作。
在此播放器中,最具特点的是在各个操作按钮以及整个界面上添加了位图和能将窗口最小化。
播放器窗口的建立,也有区别与传统的有菜单显示的窗口。
最小化到托盘后,仍可以进行操作,也可以选择退出。
对于实现播放、停止、上一曲/下一曲、添加文件,都是利用CMidi这个类来存放实现这些功能的函数。
需要的时候调用就可以。
为了是界面更美观,让人看起来更舒服,加入了位图背景。
目前还没有实现用户根据自己的喜好来更改背景图案。
通过这次课程设计,更加巩固了我们所学的知识。
目录摘要 (II)第一章课题背景和概述 (1)1.1 课题背景 (1)1.1.1 音频播放器简介 (1)1.1.2 目的和意义 (1)1.2 课题概述 (1)1.2.1 功能简介 (1)1.2.2 主要工作和理论依据 (1)第二章设计简介及设计方案论述 (3)2.1 需求分析 (3)2.2 系统功能及结构简介 (3)2.2.1 系统功能 (3)2.2.2 系统结构 (3)第三章详细设计 (4)3.1 界面设计 (4)3.1.1 播放器界面设计 (4)3.1.2 按钮上的位图显示 (5)3.2 各模块功能设计 (6)3.2.1 各按钮功能的实现 (6)3.2.2 最小化到托盘 (7)3.2.3 进度条显示 (7)第四章设计结果及分析 (8)4.1 运行结果显示 (8)4.1.1打开文件并播放 (8)4.1.2 最小化 (8)4.1.3 歌词显示 (9)4.2 结果分析和不足 (9)总结 (10)致谢 (11)参考文献 (12)附录 (13)第一章课题背景和概述1.1 课题背景1.1.1 音频播放器简介音频播放器(audio player)是一种可储存、组织与播放音讯档案格式的装置。
常被称为“MP3播放器”(因为MP3格式的普遍性),它可以播放很多其他的格式,如WMA,AAC,WAV等。
一些格式会跟有限制性的技术 DRM合并, 比如Janus和FairPlay, 一般是一些付费下载网站的一部分。
其它一些格式则是完全的专利自由或者在另外一些方面开放,比如OggVorbis,FLAC,Speex (Ogg开放多媒体工程的所有部分),以及Module file格式。
1.1.2 目的和意义通过独立设计完成制作一个播放器软件,更加理解了MFC单文档和多文档程序的构成框架,以及各个类之间数据传递的关系。
同时,对鼠标和键盘的多消息响应有了进一步的认识。
在设计制作的过程中,C++语言是基础,在熟悉MFC Windows 程序设计的同时,也复习了C++程序语言设计。
1.2 课题概述1.2.1 功能简介本次设计完成的播放器软件,能够支持播放多种格式的音频文件,常见的如MP3,WMA,AAC,WAV等。
对正在播放的歌曲,可以进行暂停、停止的操作,也可以任意添加歌曲并选择播放。
此播放器也可以最小化和最小化到托盘,方便用户在播放音乐的时候,免受打扰。
也可以在最小化到托盘的状态下,退出播放器。
本次课程设计,主要是检验这一学期,我们通过对MFC Windows应用程序设计这门课学习,能够把所学的知识应用到实际的能力。
1.2.2 主要工作和理论依据MFC类库将所有图形用户界面的元素如窗口、菜单和按钮等都以类的形式进行了封装,MFC AppWizard向导根据继承性利用MFC派生出自己的类,并对Windows应用程序进行了分解,利用MFC派生类对应用程序重新进行组装,同时还规定了应用程序中各个MFC派生类对象之间的相互联系,实现了标准Windows应用程序的功能,这就是向导生成的所谓MFC应用程序框架。
每个MFC类都包括了一些函数,函数放到类中,符合C++编程方法。
这些函数,必须通过类定义对象才能使用。
在本次设计中,首先,理清课程设计和编写程序的思路,明确程序中所要用到的函数,并做好了解。
然后,再利用C++类的继承与派生原理来构造所需要的类,编写实现每项功能的详细代码。
利用MFC提供的菜单资源来创建菜单,通过类向导建立类,函数,或者消息响应,来实现播放器的各种功能。
采用不同的Windows提供的坐标系统和对话框资源,并利用设备环境来绘制和更新图形,使播放器的界面更加美观,实现较好的人机交互界面。
第二章设计简介及设计方案论述2.1 需求分析随着社会的发展,有越来越多的人接触电脑,也有越来越多的人喜欢在上网、工作的时候,播放一点音乐,娱乐一下,缓解一下。
所以,应运而生的是音频播放器软件,能够为用户播放常见的格式音频文件。
并且,在使用的过程中,也尽可能设计出一些人性化的设计。
比如,能最小化到托盘并可以进行操作。
良好的人机交互界面,也能给人以美好的感官享受。
2.2 系统功能及结构简介2.2.1 系统功能此音频播放器可以播放多格式的音频文件。
在播放的时候,需要打开本地的音乐文件,选择想要打开的文件,点击播放便可以播放。
在播放的过程中,如果有事离开想要停止播放,可以点击暂停按钮,等到需要的时候,仍然可以点击播放,继续播放。
如果需要退出,点击关闭按钮即可。
如果是出于最小化到托盘的状态,点击右键选择退出即可。
如果想换首歌,点击下一首或者上一首的按钮便可以了。
对于想详细了解歌曲歌词内容,点击界面上的“歌词按钮”,便可以显示歌词。
为了能够让在进行其它操作的用户不受打扰,可以将此播放器最小化到托盘。
与此同时,用户依然能够通过点击鼠标右键进行相关的操作。
2.2.2 系统结构此播放器编写的时候,利用的是MFC单文档程序的构成框架,然后再利用Windows提供的资源,运用控件,自己制作了对话框和人机交互界面。
在制作界面的同时,也制作了各个按钮,并完成各个按钮的消息响应,便完成响应函数实现了功能。
第三章详细设计3.1 界面设计3.1.1 播放器界面设计此播放器的界面是利用控件和位图的结合制作出来了。
打开VC C++6.0新建一个工程,选择单文档。
便生成了一个窗口。
然后打开ResouceView,点开Dialog,插入Dialog,利用控件,绘制各个按钮。
为了使各个按钮更加美观,使用位图,用自己收集的图片将各个按钮覆盖,最后添加消息响应函数,实现各个功能。
为了使所引入的位图能够和所绘制的窗口能完全吻合,在OnPaint()函数中,调用StretchBlt()函数,让其从源矩形中复制一个位图到目标矩形,必要时按目前目标设备设置的模式进行图像的拉伸或压缩。
图3-1按钮控制最后生成的界面比较美观,给人的感觉良好图3.2播放器界面3.1.2 按钮上的位图显示为对话框添加9个按钮(Button),在Styles标签中选中Bitmap属性。
将它们的ID分别为IDC_Play,IDC_Stop_BUTTON,IDC_Next_BUTTON,IDC_Pre_BUTTON,IDC_Add_Song, IDC_Delet_Song,IDC_GC_BUTTON,IDC_MinWindow,ID_CloseWindow以实现对文件的各项操作。
将5幅准备好的位图加入资源,其ID分别设为IDC_Play,IDC_Stop_BUTTON,IDC_Next_BUTTON,IDC_Pre_BUTTON,IDC_Add_Song,IDC_Delet_Song,IDC_GC_BUTTON,IDC_MinWindow,ID_CloseWindow,分别和5个按钮相对应。
然后,在ClassWizard里为每个按钮分别添加一个CBitmapButton型的变量,分别命名为m_BitmapBtn_Delete;m_BitmapBtn_Stop;m_BitmapBtn_MinWindow;m_BitmapBt n_MaxWindow;m_BitmapBtn_CloseWindow;m_BitmapBtn_NextSong;m_BitmapBtn_UpS ong;m_BitmapBtn_paly;m_BitmapBtn_Add;m_BitmapBtn_GC;以对按钮进行操作。
3.2 各模块功能设计3.2.1 各按钮功能的实现(1)处理“打开”按钮单击“打开”按钮后,在OnAddSong()函数中,首先对文件类型进行过滤,调用OpenFiles()函数打开对话框选择一个音频文件,通过InitPath()函数获取文件路径,通过InitPath()函数获取文件名后,调用SaveList()函数在Static Text控件上显示你所选择的歌曲文件名,然后再单击播放按钮,便可以播放歌曲。
(2)处理“播放”按钮单击“播放”按钮后,在OnPlay()函数中,通过调用Midi类中的Open()函数获取刚才选择的文件路径以及文件名,调用该类的Midi类中的Play()函数播放歌曲,此时调用DisplayInfo()函数在Static Text控件上显示正在播放的歌曲,进行歌曲的播放,然后利用GetDlgItem()函数设置“播放”按钮不可用。