基于MFC运用windows media player控件实现的多媒体播放器
多媒体播放器的设计与实现报告

《多媒体技术》课程论文题目:基于MFC的多媒体播放器的设计与实现专业:班级:姓名:学号:指导老师:摘要:本程序是基于MFC集成开发环境,利用ActiveMovie控件实现媒体播放的功能的多媒体播放器。
具有打开文件、播放、暂停、全屏、音量调节、静音、快进、快退等基本播放功能。
系统开发平台为Windows 7操作系统,程序设计环境采用Visual C++ 6.0。
关键字:MFC,ActiveMovie,多媒体1.开发工具及相关知识介绍MFC(MicrosoftFoundationClasses)是微软基础类库的简称,是微软公司实现的一个c++类库,主要封装了大部分的windows API函数,vc++是微软公司开发的c/c++的集成开发环境,所谓集成开发环境,就是说利用它可以编辑,编译,调试,而不是使用多种工具轮换操作,灵活性较大。
vc也指它的内部编译器,集成开发环境必须有一个编译器内核,例如DevC++其中一个编译器内核就是gcc。
MFC除了是一个类库以外,还是一个框架,在vc++里新建一个MFC的工程,开发环境会自动帮你产生许多文件,同时它使用了mfcxx.dll。
xx是版本,它封装了mfc内核,这样你就可以专心的考虑你程序的逻辑,而不是这些每次编程都要重复的东西,但是由于是通用框架,没有最好的针对性,当然也就丧失了一些灵活性和效率。
一个MFC窗口对象是一个C++ CWnd类(或派生类)的实例,是程序直接创建的。
在程序执行中它随着窗口类构造函数的调用而生成,随着析构函数的调用而消失。
而Windows窗口则是Windows系统的一个内部数据结构的实例,由一个“窗口句柄”标识,Windows系统创建它并给它分配系统资源。
Windows窗口在MFC 窗口对象创建之后,由CWnd类的Create成员函数创建,“窗口句柄”保存在窗口对象的m_hWnd成员变量中。
Windows窗口可以被一个程序销毁,也可以被用户的动作销毁。
基于mfc的简易windows播放器

学号:20题目基于MFC的Windows播放器学院计算机科学与技术学院专业计算机应用技术班级1004班姓名李俊清指导教师胡多勋2012年6月12日目录摘要.............................................................................................................................. 错误!未定义书签。
1 绪论............................................................................................................................ 错误!未定义书签。
MFC的概况简介 .................................................................................................... 错误!未定义书签。
MFC的特点............................................................................................................. 错误!未定义书签。
2 实验目的.................................................................................................................... 错误!未定义书签。
3实验步骤 ................................................................................................................. 错误!未定义书签。
基于MFC的视频播放器

河南农业大学本科生毕业论文题目基于MFC的视频播放器学院理学院专业班级11级电子信息科学与技术(信息安全专门化)3班学生姓名蔡秀梅指导教师谷小青撰写日期:2015年05月28日基于MFC的视频播放器蔡秀梅摘要本文主要介绍了开发一款简单的视频播放器。
可以播放多种格式的音频、视频文件,它实现的基本功能包括:音频视频文件的打开、添加到菜单、媒体的播放、暂停播放、停止以及歌曲信息的查询、添加与删除、音量大小的调节、播放时间的拖动等。
使之成为一种简易的视频播放设备,能够完美的播放市场上大部分的音频、视频文件。
在本毕业设计中,系统开发平台为Windows7旗舰版OS(操作系统),程序运行环境使用Visual C++ 6.0。
在程序设计中,利用了微软公司开发的ActiveX 控件——可视动画控件Windows Media Player,程序通过调试运行,初步实现了设计目标,本程序是基于MFC集成开发环境,利用Windows Media Player控件实现视频播放的功能的,除了基本的播放控制模块外,还具有多文件的自动顺序循环播放、单曲播放、随机播放等多种实用功能,能够很好地满足当代人的音视觉需求。
关键词: 视频播放器;ActiveX控件;微软基础类Based on the MFC video playerCAI Xiu-meiAbstractThis article is developed a simple video player. It can play video formats of audio, video files. It includes the basic functions include that open the Audio and video files, add to the menu, and media playback, pause, stop and song information such as query, add and delete, adjust the volume size, play time drag and so on. Making it a simple media player device, most audio or video files in the market can be played perfectly by this media player. In this Graduation, The System Development Platform is Windows 7Ultimate. The Programming Environment is Visual C++ 6.0. In the program design, using the ActiveX control Developed by Microsoft. Program by commissioning, initial design goals achieved, the program is based on MFC Integrated Development Environment. Using Windows Media Player control can realize the function of the media player. In addition to the basic playback controls, it also has many other utility functions, such as automatic multi-file loop sequence, single play,random play and so on. Itcan meet the demand of contemporary sound sense of vision very well.Key words : video player ; Active control ; Microsoft Foundation Classes目录1 绪论 (1)1.1 课题背景 (1)1.2论文主要研究内容 (3)1.3论文结构安排 (4)2 相关技术介绍 (5)2.1 MFC (5)2.2 Visual C++6.0 (5)2.3 ActiveX控件 (5)3视频播放器的总体设计 (7)3.1 数据模型 (7)3.2 软件的模块设计 (7)3.3播放器数据流图 (8)4基于MFC的视频播放器的实现 (10)4.1多媒体播放器的界面设计 (10)4.2 视频播放器的播放控制功能的设计与实现 (10)4.2.1 播放列表 (10)4.2.2 添加文件 (11)4.2.3 保存列表 (12)4.2.4 播放文件 (13)4.2.5 删除当前和清空列表 (14)4.2.6 播放方式(随机播放、顺序播放、单曲播放) (14)4.2.7 退出程序 (15)5 结论 (17)参考文献 (18)附录 (19)致谢 (29)1 绪论1.1 课题背景随着计算机技术的飞速发展,以计算机技术为基础的多媒体技术在生活中扮演重要的角色。
winform中嵌入windows media player

如何:在窗体上嵌入Windows Media Player在Windows 窗体上嵌入Windows Media Player 可以在应用程序中提供多媒体功能。
必须先将Windows Media Player COM 控件添加到工具箱中,然后将该控件添加到应用程序中。
将Windows Media Player 控件添加到工具箱中1.在“文件”菜单上单击“新建项目”。
2.在“新建项目”对话框中,单击“Windows 窗体应用程序”,然后单击“确定”。
一个新的Windows 窗体项目随即打开。
3.右击“工具箱”并单击“选择项”。
说明:4.“自定义工具箱项”[Customize Toolbox Items]对话框随即打开。
5.在“COM 组件”选项卡上,选中“Windows Media Player”复选框,然后单击“确定”。
6.Windows Media Player 控件将显示在当前“工具箱”选项卡上。
在将Windows Media Player 控件添加到“工具箱”上时,Visual Studio 会自动添加对以下两个库的引用:AxWMPLib 和WMPLib。
下一步是将该控件添加到Windows 窗体上。
将Windows Media Player 控件添加到Windows 窗体上1.将Windows Media Player 控件从“工具箱”拖到Windows 窗体上。
2.在“属性”窗口中,将“Dock”属性设置为“Fill”。
可通过单击中心方形来实现这一点。
3.双击窗体的标题栏,在代码编辑器中添加默认的Load事件。
4.将下面的代码添加到Form_Load事件处理程序,以便在打开应用程序时加载视频。
说明:7.此代码将Windows Media Player 的URL 设置为指定的媒体文件。
由于默认情况下“autoStart”属性为true,因此在设置该URL 属性后Windows Media Player 会自动开始播放。
VC课程设计--多媒体播放器

VC课程设计--多媒体播放器课程设计课程名称可视化编程(VC)学院计算机科学与技术学院专业软件工程班级1202姓名指导教师2013——2014学年第2学期目录1.设计题目及要求 (3)2.基本功能描述 (4)3.软件设计模块 (6)3.1文件的打开模块 (6)3.2文件的播放模块 (9)3.3文件的停止模块 (9)3.4全屏模块 (9)3.5快进、快退模块 (9)3.6换皮肤模块 (10)3.7音量调节模块 (12)3.8窗口隐藏模块 (12)3.9文件暂停模块 (12)4.运行结果 (13)5.设计过程中遇到的问题和感想 (15)6.参考文献 (16)一、设计题目及要求1.1设计题目基于MFC的多媒体播放器系统1.2题目要求1.制作一个具有自己设计风格的媒体播放器。
2.要求能随机选取要播放的文件,实现前进,回退,暂停,循环播放,音量大小调节等基本功能。
3.要求能播放多种格式(至少四种或四种以上)的音频视频格式文件。
4.可以实现其它附加功能(不在要求范围之内)5.界面良好,功能完善二、基本功能描述本次课程设计制作的多媒体播放器是利用Windows系统自带的Windows Media Player控件,可以分别通过按钮和菜单实现*.mp3、*.mid、*.avi、*wav等媒体文件的打开、播放、暂停、全屏、音量调节、快进、快退、关闭、循环播放等功能。
还通过更换位图的方式,实现了换皮肤功能。
1.打开文件:通过选择文件类型打开不同类型的文件,如果打开的格式不对,消息框会提醒打开正确的格式的文件。
再打开文件前,其他按键不能进行操作。
2.播放文件:开始播放文件。
3.停止播放:停止播放文件。
4.全屏:将播放器变为全屏。
5.快退、快进:实现快退、快进功能。
6.换皮肤:选择沙漠、可爱棒冰、灯塔、郁金香可以为播放器换不同的背景。
7.音量调节:可以实现调大,调小音量的功能。
三、软件设计模块3.1文件的打开模式在WavePlayDlg.h中设定一个int型的全局m_MediaType,通过选择不同的按钮来给m_MediaType赋不同的值,不同的值代表不同的文件格式。
MFC 视频播放器 实训报告

广东技术师范学院天河学院面向对象程序设计课程设计报告题目:基于MFC的多媒体播放器的设计与实现班级: 本计科131学号: 28,21,03,05,17小组成员: 彭胜洋梁家豪陈崇钦陈东伟李旺明指导教师: 陈惠娥所属系部: 计算机科学与技术系2014年5月19 日课程设计任务书课程名称面向对象程序设计时间2014.5.19----2014.5.23 题目基于MFC的多媒体播放器的设计与实现主要内容:该程序主要实现媒体播放器的主要功能,包括使用Visual studio 2010附带的一个ActiveX控件——Windows Media Player控件,支持目前大部分格式的媒体文件,基本的播放控制功能,支持多媒体播放列表,曲目信息显示等。
系统采用MFC应用程序。
要求:(1)通过实际软件项目的分析、设计、编码、测试等工作,掌握用软件工程的方法来开发和维护系统。
(2)按要求编写课程设计报告书,能正确编写分析、设计、编码、测试等技术文档和用户使用手册。
(3)进行系统的联合调试,编写系统使用说明。
(4)完成系统的文档、设计说明工作任务分配:计科131班:陈东伟、李旺明主要负责程序框架设计和代码编写计科131班:陈东伟、李旺明、彭胜洋主要负责软件测试及调试计科131班:陈崇钦、梁家豪、彭胜洋主要负责撰写报告与汇报基于MFC的多媒体播放器的设计与实现摘要多媒体技术是二十一世纪信息技术领域中发展最快、最活跃的技术,是当前人们关注的热点技术之一,是新一代电子技术发展和竞争的焦点。
与多媒体技术发展密切相关的就是多媒体播放平台,它是多媒体技术的一个重要的分支,是人们畅游媒体信息的主要渠道。
使用VC++2010强大的MFC、AppWizard、Class Wizard和其中的多种控件可以很方便地建立各种应用程序。
同时想要实现更高级更复杂的功能,也可以借助ActiveX控件资源,用这些现有的控件资源,可以省去自己编程的复杂过程,从而实现更高级的功能。
基于MFC与UML的多媒体播放器研究

基于MFC与UML的多媒体播放器研究该播放器采用UML技术与面向对象技术研发,包含音频-视频-图片、信息一览表、播放列表、控制区、文件解析等功能模块。
该播放器利用Microsoft MFC 及ActiveX技术进行播放界面、操作界面设计。
该播放软件功能完备、易用、容错性强、界面友好,能够绑定于当前主流操作系统之上。
标签:多媒体播放器;微软基础类库;统一建模语言;ActiveX电脑播放器已经成为居家及工作的必备,它可以带来音乐、影视、图片等多元化的娱乐效果[1]。
目前市场上免费播放器很多,但大多数传统多媒体播放器的功能较为单一、界面单调,资源存储能力较弱。
而功能强大、界面友好、数据安全的多媒体播放器不仅给人们带来前所未有的视觉冲击,并且能够根据不同的要求把不同的媒体文件进行划分与管理[2]。
因此,研究开发这样一款能够兼播放、浏览、存储、管理于一体的播放器,为当前研究热点之一。
1 系统功能需求分析考虑方便用户使用及用户个性化设置等诸多因素。
最终得出该系统主要功能:首先,可以对多媒体文件进行播放、浏览;其次是可以对这些喜欢的文件进行管理,可以建立播放列表,把自己喜欢的文件加入到列表中,以便今后浏览,并且可以对这些的媒体文件进行表间的编辑管理,如剪切、移动、复制等等。
最后,系统自动读取和记录系统的当前状态,系统每次启动时,自动读取配置信息,并配置播放器,当播放器系统关闭时,系统自动保存关闭时刻的系统配置信息,以实现配置记录功能。
各项功能具体描述如下:①音频播放:实现对音频文件的播放功能。
包括mp3/wma等格式。
②视频播放:实现对视频文件的播放功能,包括jpg/png/gif/bmp等格式。
③图片播放:实现对图片文件的播放功能,包括wmv/avi/asf/rmvb等格式。
④媒体文件分类:根据用户的需求,对混合的多媒体文件进行音频、视频、图片的分类显示。
⑤播放控制:实现对媒体播放的控制,播放、暂停、停止、上一个、下一个、编辑、全屏、音量控制、进度控制、进度时间显示等等。
利用Vc6 WMPlayer控件简单制作播放器(MFC)

利用Vc6 Windows media Player控件简单制作播放器(MFC)——本教程由预子制作1:首先打开Vc6新建工程选择MFC AppWizard(exe)2:选择基本对话框:点完成出现—>4:把“取消|TODO”都delet掉;这里我把“确定”按钮拖到了右下角,这个随便5:右击“确定”选属性把标题填上,ID我改为了ID_Open;6:对话框空白处右键选择插入ActiveX控件,选择Windows Media Player路径是c:\...\...\wmp.dll那个,ocx那个我没试,7:右击wmp控件选建立类向导;在Member V ariables下选wmp控件的ID,这里没改就是默认的IDC_OCX1,选右边那个Add V ariable…8:这里会提醒你wmp控件还未插入到该工程,点确定9:确定后直接出现一些供选择的文件,因为初学都包含进来OK10:填写类变量名,这步需要记住该变量名11:OK后出现—>12:双击对话框右下角的按钮填写函数名13:OK后自动跳转到该函数体内;填写代码char szFileFilter[]="Mp3 File(*.mp3)|*.mp3|""Wma File(*.wma)|*.wma|""Video File(*.dat)|*.dat|""Wave File(*.wav)|*.wav|""A VI File(*.avi)|*.avi|""Movie File(*.mov)|*.mov|""Media File(*.mmm)|*.mmm|""Mid File(*.mid;*,rmi)|*.mid;*.rmi|""MPEG File(*.mpeg)|*.mpeg|""All File(*.*)|*.*||";//文件类型过滤CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,szFileFilter);if(dlg.DoModal()==IDOK){CString PathName=dlg.GetPathName();PathName.MakeUpper();m_Player.SetUrl(PathName);}m_Player类就是wmp控件的类变量名,上面已经提醒过要记住你起的这个名字14:填完后就可以编译了,如果只编译填代码的这个CPP,系统会提示你出错;要选择全部重建,重建后就可以按!执行了,界面如下15:点Open就可以选择文件播放了Wav声音文件播放Wmv文件播放界面。
基于MFC多媒体播放器

《C/C++课程设计》项目报告目录1 项目简介 (1)1.1 项目名称 (1)1.2 功能概述 (1)1.3 开发人员及职责 (1)2 需求分析 (1)2.1 功能需求 (1)2.2 性能需求 (2)3 系统设计 (3)3.1 代码设计 (3)3.2 流程图 (13)4 系统实现及测试 (17)5 项目总结 (20)5.1 总体总结 (20)5.2 个人总结 (21)1 项目简介1.1 项目名称多媒体播放器1.2 功能概述此款媒体播放器项目具有以下功能:(1)本地设定目录中包含音频文件的浏览和播放(支持mp3格式)。
(2)本地设定目录中包含图片文件的浏览(支持bmp格式)。
(3)本地设定目录中包含视频文件的浏览和播放(支持mp4格式)。
(4)最近播放列表功能,保存最近播放的10个文件,保存最近追加的10个文件。
视频,音频,图片是分开的,都有最近播放列表和最近追加列表。
1.3 开发人员及职责负责视频模块,以及最后的模块整合,报告的编写负责音频模块,报告的编写负责图片模块,报告的编写2 需求分析2.1. 功能需求本设计将要实现的是一个单机多媒体播放器,可以对音频、视频、图片进行查看。
从其目标功能及特点分析,将本软件功能划分如下:(1)视频播放器:可以打开MP4格式的视频文件。
在本地文件夹中将MP4格式的视频文件添加至播放列表,点击播放,或双击列表里的所选项目,就可跳转至视频播放窗口。
在播放窗口里,查看视频时,有“播放”,“暂停”,“停止”功能。
播放中,还有“前进”,“后退”功能,即快进快退功能,以4秒为一个单位,这个单位也可以在代码中进行修改。
在观看视频时,还有“上一曲,下一曲”功能,即查看之前添加在播放列表里的视频项。
同时,也可以选择播放模式“循环,顺序,随机”,该功能也是基于播放列表实现的。
在右边功能键里,还有音量调节,静音功能。
除此以外,还可以进行全屏浏览,按“ESC”退出全屏。
在主页面,还有两个数据框“最近追加项目”和“最近播放项目”,可以直观地看到最近播放项目,且可以手动清空所有项目。
MFC视频播放器项目实训论文

MFC视频播放器项目开发实训项目名称:基于MFC的视频播放器学院:专业班级:姓名:学号:指导老师:2015年1月7日基于MFC的视频播放器一、基本功能描述媒体播放器,又称媒体播放机,通常是指电脑中用来播放多媒体的应用软件,例如Windows Media Player等。
它可以播放MP3、AVI、MPEG、WMV等多种视频音频媒体文件的播放,有的比较高级的甚至还可以对媒体文件进行简单的编辑。
由于Windows一直都把Windows Media Player 称作媒体播放器,所以媒体播放器在电脑用户中成了Windows Media Player的代名词。
对于众多的使用群体来说,很难使一款软件来满足大家的要求,有的人也开始自己动手开发媒体播放器。
基于MFC应用程序的数据类型转换软件,个人觉得这个程序很实用,可以实现人们对视听的享受,程序主要是根据编码进行统计,这在以后的程序开发中经常要用到,对于我们日常的生活学习也有很大的作。
二、实验目的用VC6.0自带的一个ActiveX控件,来建立自己的多媒体播放器。
本实验将利用Visual C++6.0设计一个可以播放*.mp3,*.wma,*.mdi,*.wav,*.avi,*.dat等文件的媒体播放器。
(1)MFC的实现通过MFC窗口以及函数的使用,创建出播放器的主界面,主界面应包括文件的打开、添加、播放以及线程按键。
另外,还要各种函数应该实现相应组件上的各种事件。
(2)文件读写操作的实现通过以前的学过的文件读写操作知识,实现对音乐文件的读以及写操作,使用读写操作函数时应该注意C语言与MFC语法的相似性以及相异性。
(3)动态数据连接库的实现当删除列表中的某一歌曲或者清空列表时,调用原有的数据连接库,从而实现动态链接库的使用。
(4)线程的实现通过计时器线程Timer类,定时监视界面,并在规定的时间内自动关闭程序,达到定时关闭的目的三、实验工具Visual C++6.0 是Microsoft公司在1998年推出的基于Windows 9X和Windows NT的优秀集成开发环境。
MFC_mediaplayer

void CPlayerDlg::OnBnClickedButtonOpen()
{
// TODO: 在此添加控件通知处理程序代码
TCHAR szFileFilter[]= _T("Mp3 File(*.mp3)|*.mp3|MPEG File(*.mpeg)|*.mpeg|Media File(*.asf)
"All File(*.*)|*.*||";
找并添加Windows Media Player控件到工程。这时以CWMP开头的17个类将被添加到工程。在资源视图中将控件
拖动到用来播放多媒体的对话框上并通过ClassWizard将控件与CWMPPlayer4类对象建立关联。CWMPPlayer4类
提供了与Windows Media Player控件进行交互的基本方法,而且部分成员函数还能够进一步获取得到其他相关
量名m_ctrlPlayer.
调用m_ctrlPlayer.put_url() 可以播放媒体文件. ------------
-------------------------------------------------------------
件——》新建——》项目,选择MFC应用程序——》名称为player——》确定。
类对象的实例。其中,SetUrl()和close()方法将能够打开和关闭指定的媒体文件。在打开文件之后,能够
通过控件上的自带按钮控制媒体的播放、暂停、停止以及对音量的控制等。如果需要在程序中控制媒体的播放
,可使用GetControls()函数返回CWMPControls类对象,并进一步调用该对象的play()、stop()、pt_URL(fileName);
基于MFC的多媒体播放器的实现

基于MFC的多媒体播放器的实现
刘雅琴;夏玉杰
【期刊名称】《信息技术》
【年(卷),期】2009(000)003
【摘要】在VC+ +6.0平台上利用Windows Media Player控件实现了在程序中播放一段视频和音频的功能.测试结果证明该方法简单易行,极大缩短了程序的开发时间.
【总页数】3页(P80-82)
【作者】刘雅琴;夏玉杰
【作者单位】洛阳师范学院信息技术学院,洛阳,471022;洛阳师范学院物理与电子信息学院,洛阳,471022
【正文语种】中文
【中图分类】TP311
【相关文献】
1.基于Android的移动多媒体播放器软件的设计与实现 [J], 李德平
2.基于ARM-Linux多媒体播放器的设计与实现 [J], 陈洋君;吴志勇;崔明;张维达
3.基于Android
4.0的多媒体播放器的设计与实现 [J], 王启明;王锋
4.基于MFC与UML的多媒体播放器研究 [J], 刘鸿沈
5.基于Qt的跨平台多媒体播放器的设计与实现 [J], 滕志军;徐艳伟
因版权原因,仅展示原文概要,查看原文内容请购买。
c# 调用wmp实现同时播放多个视频

c# 调用wmp实现同时播放多个视频Windows Media Player是Windows系统自带的播放器,不用白不用。
但其局限也是明显的,例如:不能同时打开多个窗口;播放进度不能数字化定位。
其实微软在程序内部是有这些功能的,但不知为何,用户界面却不开放。
下面我们用c#编程,调用Windows Media Player控件,定制自己的播放器。
本人使用的工具是Visual c# 2010 学习版。
一、新建“Windows 窗体应用程序”项目,调整窗体Form1的大小、位置。
二、在窗体Form1中添加菜单,在菜单中添加菜单项:视屏1、视屏2、布局、定位、截图、退出。
(可以使用按钮,但菜单节省窗体空间)三、打开工具箱->在右键菜单中选择“选择项(I)”->在弹出的"选择工具箱项"窗口中选“COM组件”页 -> 在列表中勾选“Windows Media Player”->确定。
之后,工具箱就增加了Windows Media Player控件(简称WMP控件)。
四、在窗体中添加2个WMP控件,分别改名为axWMP1、axWMP2,调整好大小、位置。
五、双击设计器界面中的菜单项“视屏1”,添加方法代码:private void 视屏1ToolStripMenuItem_Click(object sender, EventArgs e) {OpenFileDialog ofd = new OpenFileDialog();if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)axWMP1.URL = ofd.FileName;ofd.Dispose();}同样,添加菜单项“视屏2”的方法:private void 视频2ToolStripMenuItem_Click(object sender, EventArgs e) {OpenFileDialog ofd = new OpenFileDialog();if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)axWMP2.URL = ofd.FileName;ofd.Dispose();}至此,我们可以按Ctrl+F5,看看运行效果。
MFC调用Windows Media Palyer实现多媒体播放器

新建了一个MFC工程OpenVideo,然后添加Windows Media Player控件;Windows Media Player控件的添加:选择菜单Project->Add to Project中的Components and Controls命令,弹出Components and Controls Gallery对话框。
然后双击Choose a component to insert into your project:中的Registered ActiveX Controls,在该文件夹中选择Windows Media Player,单击Insert,在Insert this component?中选择“确定”,将弹出Confirm Classes窗口,在列表框中有CWMPPlayer4等各种类,单击OK将返回到Components and Controls Gallery界面。
最后单击“Close”返回VC++开发界面。
自此,Windows Media Player的类都已加载到MFC的OpenVideo工程中为Windows Media Player插件添加一个关联的变量m_Ctrplay,在窗口类中定义private的CString型全局变量m_strFilePathName;添加四个按钮和一个文本编辑框,添加相应的响应函数,代码如下:void CMediaPlayDlg::OnOpen(){// TODO: Add your control notification handler code hereCFileDialog dlg(TRUE,_T(""),_T(""),OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,_T("(*.*)|*.*|(*.mp3)|*.mp3|(*.avi)|*.avi|"));if (dlg.DoModal()){m_strFilePathName=dlg.GetPathName();SetDlgItemText(IDC_EDIT,m_strFilePathName);//文本编辑框IDC_EDIT显示打开的文件}}void CMediaPlayDlg::OnPlay(){// TODO: Add your control notification handler code hereif (m_strFilePathName!=""){m_Ctrplay.SetUrl(m_strFilePathName);}SetWindowText(_T(m_strFilePathName)); //标题栏显示正在播放的文件}void CMediaPlayDlg::OnStop(){// TODO: Add your control notification handler code herem_Ctrplay.close();}void CMediaPlayDlg::OnClose(){// TODO: Add your control notification handler code hereCMediaPlayDlg::OnOK();}。
基于MFC运用windows media player控件实现的多媒体播放器

基于MFC运用windows media player控件实现的多媒体播放器设计平台PC(windows 7 x64),Visual C++ 6.0设计框图一.工程创建本程序基于MFC的对话框模式,起名为MediaPlayer。
二. 添加Windows Media Player 控件在对话框的空白处点击右键选择“Insert ActiveX control”,在弹出的对话框中找到Windows Media Player。
(因为Win7系统中没有ActiveMovieControl控件所以就用以上控件代替了。
)三.为Windows Media Player 控件设置变量在已经添加好的控件上单击右键选择“ClassWizard”,在弹出的窗口中切换到“Member Variables”一栏,找到刚刚添加的控件的ID,选中它然后在右侧的按钮中点击“Add Variables”,然后如图所示:这样就添加成功了。
此时在源文件的对话框中,系统会自动生成必需的媒体实现文件。
四.播放器界面设计设计的界面如下图所示,其中播放控制按钮有打开文件,播放,暂停,停止,快退,快进,播放列表,全屏,退出,关于。
然后还有音量控制,播放模式,播放进度,列表选项的相关控制器件。
控件ID与变量关联如下:控件ID 变量类型变量名称WMPlayer IDC_OCX1 CWMPPlayer4 m_playerListControl IDC_LIST1 CListCtrl m_listCtrlSlider IDC_SLIDER1 CSliderCtrl m_scheduleSlider IDC_SLIDER2 CSliderCtrl m_VOLUME Radio Button IDC_ORDER int m_order 按钮控件的ID和对应的响应函数名称如下:控件名称ID 响应函数名称打开文件IDC_OPEN OnOpen()播放IDC_PLAY OnPlay()暂停IDC_PAUSE OnPause()停止IDC_STOP OnStop()快退IDC_REVERSE OnReverse()快进IDC_FORWARD OnForward()播放列表IDC_PLAYLIST OnPlayList()全屏IDC_FULLSCREEN OnFullScreen()退出IDC_EXIT OnExit()- IDC_SUB OnSub()+ IDC_ADD OnAdd()上一曲IDC_LAST OnLast()下一曲IDC_NEXT OnNext()关于IDC_ABOUT OnAbout()静音IDC_SILENCE OnSlience() 选中项上移IDC_LISTCHOOSEUP OnListchooseup()选中项下移IDC_LISTCHOOSEDOWN OnListchoosedown()删除选中项IDC_LISTCHOOSEDELETE OnListchoosedelet()删除所有项IDC_LISTDELETEALL OnListdeleteall()导入列表IDC_LISTIMPORT OnListimport()导出列表IDC_LISTEXPORT OnListexport() 五.功能实现(1)播放控制Windows Media Player 控件初始化在添加该控件的时候自动生成的多个库文件,不同的文件实现播放器各个方面的功能,所以需要我们手动将他们联系起来。
基于MFC的音乐播放工具

《Windows编程》大作业题目:基于MFC的音乐播放工具姓名:学号:班级:专业:软件工程院系:计算机与信息工程系指导教师:一、题目介绍:基本要求:1、播放常用音频格式2、基本基本操作功能,例如开始,停止,声音调节等3、具有播放列表,实现循环播放,顺序播放等4、界面布局合理、美观;二、系统分析:我们本次的课程设计就是利用MFC强大而全面的类库,结合ActiveX控件资源开发一款简单而实用的音乐播放软件。
本次课程设计制作的多媒体播放器是利用Windows系统自带的Windows Media Player控件,可以分别通过按钮和菜单实现*.mp3、*.mid、*.avi、*.wmv、*.mpeg等媒体文件的打开、播放、暂停、全屏、音量调节、快进、快退、关闭等功能。
同时具备自制的播放列表,可以按照列表的顺序实现上一曲、下一曲的播放。
所要实现的功能,以及各个控件的功能特点设计软件的流程图。
可以实现打开播放器、初始化、打开文件、播放、暂停继续、停止、关闭、保存/清空列表、全屏、音量调节、快进快退、上/下一曲、关闭播放器等操作。
三、功能实现:1.设计界面如下图所示,其中基本操作按钮有播放、暂停、快进、快退、音量增大、音量减小、上一曲、下一曲;播放模式按钮有单曲播放、单曲循环、循环播放、顺序播放;列表操作有删除歌曲、清空列表。
表1 控件ID和变量关联表控件ID 变量类型变量名WMPlayer IDC_OCX1 CWMPPlayer4 m_playerListBox IDC_MUSIC CListBox m_musicButton IDC_PLAYMODE CButton m_playmode表2 按钮控件的ID和对应响应函数控件Caption ID 响应函数名播放IDC_PLAY OnPlay()暂停/继续IDC_PAUSE OnPause()快进IDC_SPEEDUP OnSpeedup()快退IDC_SPEEDDOWN OnSpeeddown()->(音量增大) IDC_ADDVOL OnAddvol()<-(音量减小) IDC_DECVOL OnDecvol()上一曲IDC_UPMUSIC OnUpmusic()下一曲IDC_DOWNMUSIC OnDownmusic()单曲播放IDC_SINGLEPLAY OnSingleplay()单曲循环IDC_SINGLECYCLE OnSingleclycle()顺序播放IDC_ORDERPLAY OnOrderplay()循环播放IDC_CYCLEPLAY OnCycleplay()删除歌曲IDC_DELETEMUSIC OnDeletemusic()清除列表IDC_CLEARLIST OnClearlist()菜单如图:2.代码实现A.让程序只有一个实例:BOOL CEllipseWndApp::InitInstance(){// 用应用程序名创建信号量HANDLE hSem = CreateSemaphore(NULL, 1, 1, m_pszExeName);// 信号量已存在?// 信号量存在,则程序已有一个实例运行if (GetLastError() == ERROR_ALREADY_EXISTS){// 关闭信号量句柄CloseHandle(hSem);// 寻找先前实例的主窗口HWND hWndPrevious = ::GetWindow(::GetDesktopWindow(),GW_CHILD);while (::IsWindow(hWndPrevious)){// 检查窗口是否有预设的标记?// 有,则是我们寻找的主窗if (::GetProp(hWndPrevious, m_pszExeName)){// 主窗口已最小化,则恢复其大小if (::IsIconic(hWndPrevious))::ShowWindow(hWndPrevious, SW_RESTORE);// 将主窗激活::SetForegroundWindow(hWndPrevious);// 将主窗的对话框激活::SetForegroundWindow(::GetLastActivePopup(hWndPrevious));// 退出本实例return FALSE;}// 继续寻找下一个窗口hWndPrevious = ::GetWindow(hWndPrevious, GW_HWNDNEXT);}// 前一实例已存在,但找不到其主窗// 可能出错了// 退出本实例return FALSE;}AfxEnableControlContainer();// Standard initialization// If you are not using these features and wish to reduce the size// of your final executable, you should remove from the following// the specific initialization routines you do not need.#ifdef _AFXDLLEnable3dControls(); // Call this when using MFC in a shared DLL#elseEnable3dControlsStatic();// Call this when linking to MFC statically#endifCEllipseWndDlg dlg;m_pMainWnd = &dlg;int nResponse = dlg.DoModal();if (nResponse == IDOK){// TOD Place code here to handle when the dialog is// dismissed with OK}else if (nResponse == IDCANCEL){// TOD Place code here to handle when the dialog is// dismissed with Cancel}// Since the dialog has been closed, return FALSE so that we exit the// application, rather than start the application's message pump.return FALSE;}int CEllipseWndDlg::OnCreate(LPCREATESTRUCT lpCreateStruct){if (CDialog::OnCreate(lpCreateStruct) == -1)return -1;// 设置寻找标记::SetProp(m_hWnd, AfxGetApp()->m_pszExeName, (HANDLE)1);return 0;}void CEllipseWndDlg::OnDestroy(){CDialog::OnDestroy();// 删除寻找标记::RemoveProp(m_hWnd, AfxGetApp()->m_pszExeName);}B.添加文件到播放列表:void CMusicplayDlg::OnOpen(){// TODO: Add your command handler code hereBROWSEINFO bi;char name[MAX_PATH];ZeroMemory(&bi,sizeof(BROWSEINFO));bi.hwndOwner = AfxGetMainWnd()->GetSafeHwnd();bi.pszDisplayName = name;bi.lpszTitle = "选择文件夹目录";bi.ulFlags = BIF_RETURNFSANCESTORS;LPITEMIDLIST idl = SHBrowseForFolder(&bi);CString strDirectoryPath;if(idl!= NULL){SHGetPathFromIDList(idl, strDirectoryPath.GetBuffer(MAX_PATH));strDirectoryPath.ReleaseBuffer();if(!strDirectoryPath.IsEmpty()){if(strDirectoryPath.Right(1)!="\\"){strDirectoryPath+="//";strDirectoryPath.Replace("\\","//");}}}music mymusic;int index;CFileFind finder;BOOL bWorking = finder.FindFile(strDirectoryPath+"*.mp3");while(bWorking){bWorking = finder.FindNextFile();mymusic.pathName=(CString) finder.GetFilePath();=(CString) finder.GetFileName();if((m_music.FindStringExact(-1,))!=LB_ERR)continue;index=m_music.AddString();m_music.SetItemDataPtr(index,new music(mymusic));index++;}Invalidate(false);}C.添加单首歌曲:void CMusicplayDlg::OnAddmusic(){// TODO: Add your command handler code hereCFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,_T("mp3文件(*.mp3)|*.mp3|打开所有文件(*.*)|*.*||"),this);if(dlg.DoModal() == IDOK){music mymusic;mymusic.pathName = dlg.GetPathName(); = dlg.GetFileName();if((m_music.FindStringExact(-1,))!=LB_ERR){MessageBox("歌曲已存在!!");return ;}int index=m_music.AddString();m_music.SetItemDataPtr(index,new music(mymusic));index++;}}D.播放歌曲:主要获取选中的歌曲的pathName,运用m_player.SetUrl(PathName->pathName)函数来实现并且判断暂停按钮是否是继续,如是则改为暂停。
专业课程设计_基于MFC的多媒体播放器

本次课程设计制作的多媒体播放器是利用 Windows 系统自带的 Windows Media Player 控件,可以分别通过按钮和菜单实现*.mp3、*.mid、*.avi、*.wmv、*.mpeg 等媒体文件的 打开、播放、暂停、全屏、音量调节、快进、快退、关闭等功能。同时具备自制的播放列 表,可以按照列表的顺序实现上一曲、下一曲的播放。
图 6 界面设计效果
对其 ID 和变量进行修改如下表。
表 1 控件 ID 和变量关联表
控件 WMPlayer
ListBox
ID IDC_OCX1 IDC_LIST1
变量类型 CWMPPlayer4
CListBox
5
变量名 m_player
m_list
表 2 按钮控件的 ID 和对应响应函数
控件 Caption 添加 播放
7
","Warning",MB_OK); else {if(m_ lis t.Ge tC urSe l()<0){m_ list.Se tCurSe l(0 );} int index=m_list.GetCurSel(); m_list.GetText(index,str);//获取当前选中文件信息 m_player.SetUrl(str);//播放当前选中文件 }
多媒体视频播放器
1. 基本功能描述
媒体播放器,又称媒体播放机,通常是指电脑中用来播放多媒体的应用软件,例如 Windows Media Player 等。它可以播放 MP3、AVI、MPEG、WMV 等多种视频音频媒体文 件的播放,有的比较高级的甚至还可以对媒体文件进行简单的编辑。由于在 Windows Me 前的中文 Windows 一直都把 Windows Media Player 称作媒体播放器,所以媒体播放器在电 脑老用户中成了 Windows Media Player 的代名词。当然,到了现在我们有了更多的选择, 目前比较常用的媒体播放软件有暴风影音、迅雷看看、RealPlayer、Windows Media Player、 KMPlayer 等。其功能也越来越多,已经不仅仅是播放器。但是相对于众多的使用群体来说, 很难使一款软件来满足大家的要求,有的人也开始自己动手开发媒体播放器。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于MFC运用windows media player控件实现的多媒体播放器设计平台PC(windows 7 x64),Visual C++ 6.0设计框图一.工程创建本程序基于MFC的对话框模式,起名为MediaPlayer。
二. 添加Windows Media Player 控件在对话框的空白处点击右键选择“Insert ActiveX control”,在弹出的对话框中找到Windows Media Player。
(因为Win7系统中没有ActiveMovieControl控件所以就用以上控件代替了。
)三.为Windows Media Player 控件设置变量在已经添加好的控件上单击右键选择“ClassWizard”,在弹出的窗口中切换到“Member Variables”一栏,找到刚刚添加的控件的ID,选中它然后在右侧的按钮中点击“Add Variables”,然后如图所示:这样就添加成功了。
此时在源文件的对话框中,系统会自动生成必需的媒体实现文件。
四.播放器界面设计设计的界面如下图所示,其中播放控制按钮有打开文件,播放,暂停,停止,快退,快进,播放列表,全屏,退出,关于。
然后还有音量控制,播放模式,播放进度,列表选项的相关控制器件。
控件ID与变量关联如下:控件ID 变量类型变量名称WMPlayer IDC_OCX1 CWMPPlayer4 m_playerListControl IDC_LIST1 CListCtrl m_listCtrlSlider IDC_SLIDER1 CSliderCtrl m_scheduleSlider IDC_SLIDER2 CSliderCtrl m_VOLUME Radio Button IDC_ORDER int m_order 按钮控件的ID和对应的响应函数名称如下:控件名称ID 响应函数名称打开文件IDC_OPEN OnOpen()播放IDC_PLAY OnPlay()暂停IDC_PAUSE OnPause()停止IDC_STOP OnStop()快退IDC_REVERSE OnReverse()快进IDC_FORWARD OnForward()播放列表IDC_PLAYLIST OnPlayList()全屏IDC_FULLSCREEN OnFullScreen()退出IDC_EXIT OnExit()- IDC_SUB OnSub()+ IDC_ADD OnAdd()上一曲IDC_LAST OnLast()下一曲IDC_NEXT OnNext()关于IDC_ABOUT OnAbout()静音IDC_SILENCE OnSlience() 选中项上移IDC_LISTCHOOSEUP OnListchooseup()选中项下移IDC_LISTCHOOSEDOWN OnListchoosedown()删除选中项IDC_LISTCHOOSEDELETE OnListchoosedelet()删除所有项IDC_LISTDELETEALL OnListdeleteall()导入列表IDC_LISTIMPORT OnListimport()导出列表IDC_LISTEXPORT OnListexport() 五.功能实现(1)播放控制Windows Media Player 控件初始化在添加该控件的时候自动生成的多个库文件,不同的文件实现播放器各个方面的功能,所以需要我们手动将他们联系起来。
所以我们要在MediaPlayerDlg.h头文件中添加如下内容:添加头文件:#include "wmpcontrols.h"#include "wmpsettings.h"#include "wmpplaylist.h"#include "wmpmedia.h"添加公共成员:CWMPControls m_control;CWMPSettings m_setting;CWMPMedia m_media;在MediaPlayerDlg.cpp的初始化函数BOOL CMediaPlayerDlg::OnInitDialog()中添加m_control=static_cast<CWMPControls>(m_player.GetControls());m_setting=m_player.GetSettings();m_list=static_cast<CWMPPlaylist>(m_player.GetCurrentPlaylist());m_media=static_cast<CWMPMedia>(m_player.GetCurrentMedia());将相应媒体播放控制文件联系起来。
打开文件到播放列表void CMediaPlayerDlg::OnOpen(){m_listCtrl.SetFocus();CString str;POSITION pos;pos = m_listCtrl.GetFirstSelectedItemPosition();IndexInFieldList = m_listCtrl.GetNextSelectedItem(pos);m_listCtrl.SetItemState(IndexInFieldList,~LVIS_SELECTED,LVIS_SELECTED);TCHAR szFilter[] =_T("Mp3 File(*.mp3)|*.mp3|Wma File(*.wma)|*.wma|Video File(*.dat)|*.dat|Wave File(*.wav)|*.wav|AVI File(*.avi)|*.avi|Movie File(*.mov)|*.mov|Media File(*.mmm)|*.mmm|Mid File(*.mid;*,rmi)|*.mid;*.rmi|MPEG File(*.mpeg)|*.mpeg|All File(*.*)|*.*||");CFileDialog fileDlg(TRUE,NULL, NULL,OFN_HIDEREADONLY |OFN_OVERWRITEPROMPT, szFilter, this);CString strFilePath;if (IDOK == fileDlg.DoModal()){strFilePath = fileDlg.GetPathName();strFilePath.MakeUpper();m_player.SetUrl(strFilePath);m_media=static_cast<CWMPMedia>(m_player.newMedia(strFilePath));m_list.appendItem(m_media);m_listCtrl.InsertItem(0,m_media.GetName());m_listCtrl.SetItemText(0,1,_T(m_media.getItemInfo("FileType")));m_listCtrl.SetItemText(0,2,_T(m_media.GetDurationString()));m_listCtrl.SetItemText(0,3,_T(strFilePath));m_listCtrl.SetItemText(0,4,_T(m_media.getItemInfo("Duration")));m_player.SetUrl(m_listCtrl.GetItemText(0,3));m_listCtrl.SetItemState(0,LVIS_SELECTED,LVIS_SELECTED);}}打开功能实现分为了两个部分,第一部分通过m_player.SetUrl()来取得媒体文件,第二部分是将媒体文件的相关信息添加到右侧的播放列表中去,让列表中的光标始终停留在第一栏的位置。
播放按钮void CMediaPlayerDlg::OnPlay(){if(m_list.GetCount()<=0){MessageBox("列表无文件!","Warning",MB_OK);spaceflag=1;}else{if(!finder.FindFile(m_player.GetUrl())){MessageBox("文件不已存在,该列项将被删除!","Warning",MB_OK);CMediaPlayerDlg::OnListchoosedelete();}else{KillTimer(0);m_control.play();if(m_control.GetCurrentPosition()==0)m_control.SetCurrentPosition(0.01);SetTimer(0,20,NULL);spaceflag=0;}}}播放功能主要是通过控件提供的m_control.play()来实现的。
函数中Timer的设置和后面的播放模式有关,m_control.SetCurrentPosition(0.01)的目的是为了将未播放状态与播放后的停止状态区分开来。
暂停按钮void CMediaPlayerDlg::OnPause(){m_control.pause();}停止按钮void CMediaPlayerDlg::OnStop(){KillTimer(0);m_control.stop();}全屏模式void CMediaPlayerDlg::OnFullscreen(){if(m_control.GetCurrentPosition()!=0&&!m_player.GetFullScreen()){m_control.pause();m_player.SetFullScreen(true);m_control.play();}}全屏模式存在着bug,就是进入到全屏后不能够接收键盘输入字符,否则整个程序会变为未响应状态。
后来有添加了对键盘信息的获取和控制函数来解决这个问题,后面会提到。
快进/退void CMediaPlayerDlg::OnReverse(){double t = m_control.GetCurrentPosition();m_control.SetCurrentPosition(t=t-10); }void CMediaPlayerDlg::OnForward(){double t = m_control.GetCurrentPosition();m_control.SetCurrentPosition(t=t+10);}虽然"wmpcontrols.h"中有直接快进、退的相关函数,但是视频播放时是无效的,所以就没有用自带的函数来实现。