基于mfc音乐播放器的设计与实现(含源文件)
设计题目
设计题目:基于mfc 的多媒体播放器一、 需求描述利用VC 6.0作为开发工具,开发一个基于mfc 的多媒体播放器;它是播放音乐的应用程序;它可以实现以下功能:1.添加歌曲,视频(即打开音乐,视频文件);2.播放、暂停歌曲播放;3.可以上一首,下一首选择播放;随着人们对视听效果的不断提高,多媒体技术已经成为计算机领域发展的重要部分。
它可以实现人们对视听的享受,程序主要是根据编码进行统计,这在以后的程序开发中经常要用到。
对于我们日常的生活学习有很大的作用。
而且,随着编程平台的不断发展,开发多媒体程序不再是一件繁琐、艰难的工作了,VC6.0作为开发工具就可以方便快捷的编写多媒体程序。
Visual C++6.0 是Microsoft 公司在1998年推出的基于Windows 9X 和Windows NT 的优秀集成开发环境。
该环境为用户提供了良好的可视化编程环境,程序员可以里利用该开发环境轻松地访问C++源代码编辑器,资源编辑器和使用内部调试器,并且可以创建项目文件。
Visual C++6.0不仅包括编译器,而且它还包括许多有用组件,通过这些组件的协同工作,可以在Visual C++6.0集成环境中轻松地完成创建源文件,编辑资源,以及对程序的编译,连接和调试等各项工作。
本系统就介绍用VC6.0自带的一个ActiveX 控件----Windows Media Player 9,来建立自己的多媒体播放器。
利用Visual C++6.0设计一个可以播放*.avi;*.asf;*.wmv;*.rm;*.rmvb, *.mp3;*.wav;*.cda 等文件的媒体播放器。
二、数据流图顶层图打式错误三、设计1、系统模块结构图和界面打开模块:打开目标文件,如音频、视频文件。
关闭模块:关闭播放器。
播放模块:播放音频、视频文件。
暂停模块:暂时停止正在播放的音/视频文件。
界面图:2.详细设计:程序流程图:四、编码:1. 模块实现函数说明这些实现模块功能的具体函数是在建立Test 工程时由MFC 建立的一个对话框的类,各个模块的几个重要实现函数描述见下表所示:2.具体实现过程:利用类向导给ActiveX 控件----Windows Media Player 9添加变量CWMPPlayer4 m_myplayer ;添加变量CString filename ;还需要在TestDlg.cpp 中包含三个头文件:#include “wmpplayer4.h ”, #include "wmpcontrols.h",#include "wmpsettings.h"。
MP3音乐播放器软件课程设计报告(MFC)
课程设计说明书课程设计名称:软件综合课程设计课程设计题目:音频播放器程序的设计与实现学院名称:信息工程学院电子信息工程专业课程设计任务书正文:目录引言 (5)一、设计程序的目的与要求 (6)目的 (6)要求 (6)二、方案实现与调试 (6)总体设计 (6)1、实现功能 (6)2、功能模块图 (7)详细设计 (7)1、界面布局 (7)2、各模块功能设计 (8)2.1处理“打开”按钮 (9)2.2处理“播放”按钮 (9)2.3处理“暂停”按钮 (9)2.4处理“停止”按钮 (9)2.5处理“音量”按钮 (10)2.6处理“退出”按钮 (10)3 操作步骤 (10)三、课程设计分析与总结 (11)分析 (11)总结 (11)附录 (13)关键程序清单 (13)参考文献 (20)引言MP3播放器的设计是利用MFC应用程序、媒体控制接口MIC 的基本知识而设计的。
1.1 MFC简介MFC是Visual C++是核心。
MFC类库将所有图形用户界面的元素如窗口、菜单和按钮等都以类的形式进行了封装,MFC AppWizard 向导根据继承性利用MFC派生出自己的类,并对Windows应用程序进行了分解,利用MFC派生类对应用程序重新进行组装,同时还规定了应用程序中各个MFC派生类对象之间的相互联系,实现了标准Windows应用程序的功能,这就是向导生成的所谓MFC应用程序框架。
每个MFC类都包括了一些函数,函数放到类中,符合C++编程方法。
这些函数,必须通过类定义对象才能使用[1]。
1.2 MCI简介MCI(Media Control Interface)媒体控制接口是MircroSoft提供的一组多媒体设备和文件的标准接口,它的好处是可以方便地控制绝大多数多媒体设备包括音频、视频、影碟、录像等多媒体设备,而不需要知道它们的内部工作状况。
它所支持的媒体格式包括mp3、avi、wav、mpeg等等[2]。
音频技术发展较早,几年前一些技术已经成熟并产品化,音频技术主要包括四个方面:音频数字化、语音处理、语音合成及语音识别。
毕业设计(论文)-基于C#实现音乐播放器功能
闽江学院本科毕业论文(设计)题目基于C#实现音乐播放器功能学生姓名学号系别计算机科学系年级专业通信工程指导教师职称教授完成日期摘要现代经济开展迅速,科学技术也在不断开展进步,日益繁荣的计算机信息技术带给人们许多便利。
音乐作为人们生活中常见的娱乐方式,也在计算机普及的冲击下发生了革新。
随着音乐的数字化,媒体播放器也往更高质方向进步。
最常见的Windows media player——因其强大的音频解码功能而备受青睐。
当你也想自己动手制作一个能够简单播放歌曲的音乐播放器,体验一下编程的乐趣的时候你可以使用Visual stdio2021工具。
本文的目的在于让大家知道一种简单建造音乐播放器的方法,主要是通过Visual stdio进行。
文章包含了对音乐播放器界面实现的方法和对后台代码的理解及掌握,主要实现通过电脑使用播放器进行音乐播放功能和简单的在线搜索的功能。
通过实践进一步理解播放器的需求,以及其开发过程,根本满足群众播放器的要求。
文中使用面向.net frame框架,设计了一个简单的音乐播放器。
该播放器可以实现播放功能、搜索功能、歌词显示等。
关键字:音乐播放器、Visual studio 2021、.net frameAbstractWith the rapid development of modern economy and the continuous development of science and technology, computer information technology is becoming more and more prosperous. Music as a common way of entertainment in people's lives, but also because of the popularity of computers has changed. With digital music, media players also progress to higher quality direction. Because of the Windows Media Player’s powerful audio decoding, the most common Windows Media Player loved by everyone. If you want to make a simple music player to play songs and to experience the fun of programming,you can use the Visual stdio2021.The purpose of this is to make everyone know a simple way to build a music player, and this method is mainly achieved by the Visual stdio. Article contains the method of a music player interface implementations, to understand and grasp the code-behind, the main function of the music player is to play songs and to search online. Through practice we can further understand the needs of the player and its development process. The music player meets the requirements of the public players basically. This article uses .net framework to design a simple music player. This music player can play songs, search online, and display the lyrics.K eyword s:music player. the visual stdio 2021. .net frame目录1. 引言 (1)1.1 选题背景及意义 (1)1.2 网络流行音乐播放器简介 (1)1.2.1 酷狗音乐 (1)1.2.2 百度音乐 (2)1.3 课题研究思路 (2)2. 开发技术简介 (2)2.1 C#编程语言介绍 (2)2.2 Windows Media Player (3)2.3 Windows控件 (3)2.4 WebBrowser控件 (3)3. 需求分析 (4)3.1 功能需求 (4)开发与运行环境 (6)3.3 可行性分析 (6)3.3.1 技术可行性 (7)3.3.2 经济可行性 (7)3.3.3 法律可行性 (7)4. 系统设计 (7)设计概要 (7)4.2 功能模块 (8)5. 功能实现 (9)5.1 播放器框架设计 (9)命名空间结构 (9) (9)5.2 歌曲添加模块 (10)5.3 歌曲删除模块 (11)5.4 播放控制模块 (12)5.4.1 取消自动播放 (12)5.4.2 点击播放音乐 (12)歌曲切换 (13)5.5 自动播放下一曲 (13)5.6 显示歌词模块 (14)5.7 显示皮肤模块 (15)5.8 播放器背景模块 (16)5.9 网络连接模块 (16)6. 软件测试 (16)7. 结束语 (24)致谢 (25)参考文献 (26)基于C#实现音乐播放器功能1. 引言1.1 选题背景及意义什么是音乐?是跳动的音符跃然在琴键上,敲击出的空灵;是平稳的音律轻晃在琴弦上,弹奏出的悠闲。
基于MFC的音乐播放器
xxxxxxxxxx《Windows编程》大作业题目:基于MFC的音乐播放工具姓名:学号:班级:指导老师: 2013.12.26一、功能描述具有一般播放*.mp3,*.wma,*.mdi,*.wav,*.avi,*.dat等文件,实现了基本控制功能和播放模式控制。
二、系统概述本系统使用windows media play控件实现音乐播放,并实现播放列表以及歌曲的循环顺序播放,并用按钮实现了添加文件、播放、暂停、停止、上一曲、下一曲及歌曲删除功能。
音量的增减由windows media play上自带的按钮实现,没有单独的音量增减按钮。
Windows media play控件自身有播放列表,但是网上资料不全,不知道如何去实现,只有自己用list control控件实现了播放列表。
本来是用vc++6.0创建工程,但过程中出现一些无法理解的错误,之后只能用vs2012打开工程,错误消失,所以工程文件比较大。
三、系统设计步骤1、创建MFC(exe)对话框工程2、在对话框中添加windows media play控件并添加成员变量m_Ctrplay系统会自动生成必需的媒体实现文件。
并在头文件中添加共有变量CWMPControl s m_control;CWMPSettings m_setting;CWMPMedia m_media;CWMPPlaylist m_list;3、界面设计:设计的界面如下图所示,其中播放控制按钮有打开文件,播放,暂停,停止,播放列表,退出,关于。
然后还有,播放模式的相关控制器件为list control控件添加成员变量m_listCtrl4、功能实现首先初始化播放控件及列表控件。
在OnInitDialog()方法中添加代码:m_setting = static_cast <CWMPSettings> (m_Ctrplay.GetSettings());m_control = static_cast <CWMPControls> (m_Ctrplay.GetControls());m_media = static_cast <CWMPMedia> (m_Ctrplay.newMedia(NULL));CRect rect;m_listCtrl.GetClientRect(&rect);m_listCtrl.SetExtendedStyle(m_listCtrl.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);m_listCtrl.InsertColumn(0,_T("名称"),LVCFMT_CENTER,2*rect.Width()/4,0);m_listCtrl.InsertColumn(1,_T("格式"),LVCFMT_CENTER,rect.Width()/4,1);m_listCtrl.InsertColumn(2,_T("时长"),LVCFMT_CENTER,rect.Width()/4,2);m_listCtrl.InsertColumn(3,_T(""),LVCFMT_CENTER,0,3);m_listCtrl.InsertColumn(4,_T(""),LVCFMT_CENTER,0,4);实现对控件的初始化。
MFC音乐播放器(实验报告)
音乐播放器大型实验报告通过动手制作基于VC++的音乐播放器,了解播放器的原理。
并通过自己动手,在windows 播放器组件的基础上,用自己的算法,去实现自己的界面和自己的播放模式。
二、总体设计(1)在visual c++环境下设计出一个音乐播放器的界面:具有打开音乐文件、播放歌曲,、暂停或恢复、停止、调节音量大小的功能;(2)修改各个控件的属性,并为其添加消息函数; (3)用媒体控制接口MCI 编程为各个消息函数添加代码; (4)对该音乐播放器编译--运行。
音乐播放器打开文件播放歌曲暂停播放停止播放音量控制(一):创建MFC应用程序框架:打开visual c++软件,选择“文件”—“新建”新建一个应用程序文档MFC AppWizard[exe],将工程命名为MFC音乐播放器,选择合适的保存位置,然后“确定”选择基本对话框,完成设置。
(二)编辑对话框:在工作区内,设计出一个音乐播放器的界面,添加按钮控件:浏览、播放、暂停、停止,添加一个滑动条控件,一个静态文本,两个编辑框。
然后,依次修改各控件的属性:1)右击静态文本,选择属性,将标题改为音乐名称:2)右击编辑框,选择属性,将ID改为IDC_filename3) 右击Button1,选择属性,将ID改为IDC_filechoice,将标题改为浏览3)右击Button2,选择属性,将ID改为IDC_play,将标题改为播放4)右击Button3,选择属性,将ID改为IDC_pause,将标题改为暂停5)右击Button4,选择属性,将ID改为IDC_stop,将标题改为停止6)右击滑块,ID改为IDC_SLIDER单击样式,点[P]:选择顶端/左侧,选择打勾标记。
7)右击编辑框,将ID改为IDC_vol音乐播放器的界面已经设计完毕,为:(三)添加代码1)在头文件处添加#include"Mmsystem.h"#include"Digitalv.h"#pragma comment(lib,"Winmm.lib")2)定义全局变量及成员函数。
基于MFC的音乐播放器vc6.0
afx_msg void OnNexts();
afx_msg void Onexit();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
4.在playerDlg.cpp中的函数如下
// playerDlg.cpp : implementation file
DDX_Control(pDX, m_list, m_list2);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CPlayerDlg, CDialog)
//{{AFX_MSG_MAP(CPlayerDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPlayerDlg dialog
CPlayerDlg::CPlayerDlg(CWnd* pParent /*=NULL*/)
//
#include "stdafx.h"
#include "player.h"
#include "playerDlg.h"
#pragma comment(lib,"winmm.lib")
#include "mmsystem.h"
#include "Digitalv.h"
基于C的智能音乐播放器的设计和实现毕业设计
通化师范学院本科生毕业论文(2021 届)题目:基于C#的智能音乐播放器的设计和实现系别:运算机学院专业:运算机科学与技术班级:2020级1班作者姓名:学号:0103指导教师:职称:讲师学历:研究生论文成绩:2021 年12 月目录绪论 (5)第一章 C#概述 ...................................................................................................... 错误!未定义书签。
什么是C#?.....................................................................................................错误!未定义书签。
简介.................................................................................................................错误!未定义书签。
第二章系统分析 (7)功能需求分析 (7)播放器的大体操纵需求 (7)媒体文件列表的获取 (8)系统界面需求...................................................................................................错误!未定义书签。
第三章系统设计 .. (16)系统模块设计 (16)模块详细概述 (18)开始模块 (18)播放模式模块 (19)透明度模块 (19)界面设置模块 (20)关于模块 (20)第四章系统功能实现 (20)播放器主界面功能 (20)开始模块 (21)播放模式模块 (23)第五章系统测试 (26)单元测试一 (26)单元测试二 (26)第六章结论与展望 (26)参考文献 (28)指导教师评语评阅人评语基于c#的智能音乐播放器的设计和实现摘要:本文针对现今流行音乐播放器的内存大量占用和操作复杂等缺点,设计并实现了开发出了一个功能丰硕、占用内存少、操作简易的音乐点播系统,该播放器具有低内存占用和绿色无广告的特点,因此具有广漠的市场前景。
基于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的音乐播放器的实现作者:余安乾陈伯亨来源:《电脑知识与技术》2020年第30期摘要:利用VisualStudio开发工具基于MFC(Microsoft Foundation Class)实现一个简易的音乐播放器,该文首先简单介绍当前市面上一些音乐播放器和制作播放器的开发工具中QT 与MFC的区别,再详细说明如何使用文件对话框,媒體控制接口设计简易的音乐播放器。
关键词:播放器;MFC中图分类号:G642 文献标识码:A文章编号:1009-3044(2020)30-0080-021 音乐播放器的描述音乐播放器是人们生活中必不可少的东西,任何人都有属于自己心中的那份特殊的情感,音乐即表达情感和寄托情感的语言。
当前比较火热的音乐播放器有QQ音乐,网易音乐,酷狗音乐,当然还有其他小众的播放器,由此可见播放器种类多,但总有符合自己风格的音乐播放器。
设计音乐播放器将用到VisualStudio开发工具,基于MFC设计一款音乐播放器,实现打开音乐文件,点击歌曲列表中的歌曲进行播放、暂停,显示歌曲的时间和歌词和显示背景图片等功能。
2 设计思路制作音乐播放器就像是开发一个软件,要先有思路再去实践。
开发软件是要做什么?所开发的软件要达到怎样的功能?每个功能怎样去实现[1] ?对此,首先需要先思考,对整个过程有个思路。
音乐播放器的主要功能就是播放音乐,首先需要用CFileDialog打开文件对话框选择需要的音乐文件,包括MP3文件,WMA文件,WAV文件,将所需音乐文件的路径一一获取。
其次通过MFC的控件listcontrol显示选择的多首歌曲名字或歌曲路径,listcontrol控件添加的事件将会判断鼠标点击的歌曲所在列表控件的行号,由此获得此歌曲所在的路径。
最后交给媒体控制接口提供的mciSendCommand函数实现打开音乐文件、播放音乐、暂停音乐和控制音量等功能。
进一步优化时,要实现歌曲的时间显示和歌词的显示则都需要定时器。
基于C++的MFC对话框的音乐播放器
表 2-2 MCI 函数
函数名 mciSendCommand mciGetDeviceID mciSendString mciGetErrorString
功
能
发送命令消息
获取MCI设备的ID 发送命令字符串
获取当前MCI错误的字符串描述
类型 命令消息接口函数
命令字符串接口函数 公用函数
MCI 命令消息接口方式利用消息和数据结构来给多媒体设备发送命令和接 收 MCI 设备传来的信息。这种方式的接口函数主要有 3 个,即 mciSendCommand,
5 关键代码附录
//定义三个全局函数 HWND m_hWnd;;//记录当前窗口的句柄 DWORD DeviceID;;//指定播放音乐的设备 ID MCI_OPEN_PARMS mciOpenParms;//指定打开音乐文件的参数
void Load(HWND hWnd,CString strFilePath)//加载设备文件,将文件路径传给 MCI_OPEN_PARMS 类 {
C++面向对象程序设计
报
告
姓名: 专业:电子与通信工程 学号:201622 时间:2016 年 12 月 5 日
基于 C++的 MFC 对话框的音乐播放器
1 设计内容
设计题目:基于 C++的 MFC 对话框的音乐播放器 设计内容:利用 MFC 应用程序、媒体控制接口 MIC 的基本知识,设计一个 MP3 播放器。要求能够播放常用 Windows 音频格式的文件;实现播放控制:播放、 暂停、停止等;实现音量控制:声音放大、减小等功能。 本次作业的意义在于结合 C++语言提供的思想和多样的媒体控制方法,结合 用户对媒体播放器的要求和使用音乐播放器的习惯,设计了一款界面简单明了, 操作简单实用的音乐播放器。
MFC做音乐播放器——你懂的
前言:音乐播放器其实我在大一的时候就用非常生硬的语法写出过一个非常简陋的播放器。
这次写的这个是以前那个的加强版。
虽然说还是有很多bug,而且我至今不知道那些BUG是什么地方的问题。
先给个截图吧,播放器的界面:其实看着还是有那么回事的。
恩,其实除了波形和在线下载的话,功能和酷狗,以及千千静听等播放器的功能是一样的。
音乐播放器的关键是播放音乐,所以第一步是要设计一个类,这个类拥有各种各样的播放音乐的能力。
我设计的类名字叫Playerclass Player{public:Player();virtual ~Player();void Play();//播放函数void Pause();//暂停函数void Stop();//停止函数void Jump(DWORD pos);//这个函数是用来通过直接拖动进度条,然后播放从歌曲的相应位置播放的函数void Read(CString str);//这个函数必须在所有函数的前面调用,他有一个传入参数,是指MP3文件的路径void SetVolume(DWORD vol);//音量大小的设定。
这个不难MCI_STATUS_PARMS GetMode();//这个比较关键,是获得当前的播放状态(一首歌是否播放完了就是靠他)MCI_STATUS_PARMS GetNow();//当前是播放的歌曲第几分第几秒?可以用来改变时间栏和进度条MCI_STATUS_PARMS GetLenth();//获得歌曲的长度。
(时间)private:MCI_PLAY_PARMS m_play;MCI_OPEN_PARMS m_open;MCIDEVICEID m_dID;HWND m_parent;MCI_STATUS_PARMS m_status;MCI_SEEK_PARMS m_seek;MCI_STATUS_PARMS m_mode;};各个函数(可以作为以后MCI函数的查阅手册)实现方法是:void Player::Read(CString str){m_dID=NULL;m_open.lpstrElementName=str;mciSendCommand(NULL,MCI_OPEN,MCI_OPEN_ELEMENT,(DWORD)(LPVOID)&m_o pen);//MCI打开文件m_dID=m_open.wDeviceID;}void Player::Play(){m_play.dwCallback=(DWORD)m_parent;mciSendCommand(m_dID,MCI_PLAY,MCI_NOTIFY,(DWORD)(LPVOID)&m_play);//播放.....下面就不写注释了}void Player::Pause(){mciSendCommand(m_dID,MCI_PAUSE,NULL,NULL);void Player::Stop(){mciSendCommand(m_dID,MCI_CLOSE,NULL,NULL);m_status.dwReturn=0;}MCI_STATUS_PARMS Player::GetLenth(){m_status.dwItem=MCI_STATUS_LENGTH;mciSendCommand(m_dID,MCI_STATUS,MCI_STATUS_ITEM,(DWORD)(LPVOID)&m_s tatus);return m_status;}MCI_STATUS_PARMS Player::GetNow(){m_status.dwItem=MCI_STATUS_POSITION;mciSendCommand(m_dID,MCI_STATUS,MCI_STATUS_ITEM,(DWORD)(LPVOID)&m_s tatus);return m_status;}MCI_STATUS_PARMS Player::GetMode(){m_mode.dwItem=MCI_STATUS_MODE;mciSendCommand(m_dID,MCI_STATUS,MCI_STATUS_ITEM,(DWORD)(LPVOID)&m_ mode);return m_mode;}void Player::Jump(DWORD pos){m_seek.dwTo=pos;mciSendCommand(m_dID,MCI_SEEK,MCI_TO|MCI_WAIT,(DWORD)(LPVOID)&m_seekmciSendCommand(m_dID,MCI_PLAY,MCI_NOTIFY,(DWORD)(LPVOID)&m_play);}void Player::SetVolume(DWORD vol){MCI_DGV_SETAUDIO_PARMS mcivol;mcivol.dwCallback=(DWORD)m_parent;mcivol.dwItem=MCI_DGV_SETAUDIO_VOLUME;mcivol.dwValue=vol;mciSendCommand(m_dID,MCI_SETAUDIO,MCI_DGV_SETAUDIO_VALUE|MCI_DGV_ SETAUDIO_ITEM,(DWORD)(LPVOID)&mcivol);}基本上都是运用mciSendCommand这个函数,传入不同的参数,就可以达到不同的效果。
用MFC做MP3音乐播放器——超实用
第一步:打开,建立如图所示mfc工程文件选择基于对话框的确定删除所有空间,建立如图所示对话框属性如下:播放 IDC_open;添加 IDC_fileopen;暂停 IDC_pause;删除 IDC_del;停止 IDC_stop;退出 IDC_exit;音乐名编辑框 IDC_filename;音量控制滑块 IDC_SLIDER1;音量控制编辑框 IDC_vol;建立类向导对应如下:在工程文件,右键,插入,bitmap位图引入你想插入的背景图,必须是bmp格式的进入你的文件在onpaint函数下添加代码void CMp3Dlg::OnPaint(){if (IsIconic()){CPaintDC dc(this);" #include ""#ifdef _DEBUG#undef THIS_FILEstatic char THIS_FILE[]=__FILE__;#define new DEBUG_NEW#endif"#include "Mp3²¥·ÅÆ÷"#include ""#include ""#include "" p3)|*.mp3|""wma文件(*.wma)|*.wma|""wav文件(*.wav)|*.wav|";CFileDialogdlg(true,NULL,NULL,OFN_HIDEREADONLY|OFN_ALLOWMULTISELECT|OFN_ENABLESIZING,filef iler);if ()==IDOK){CString strfilepath=();CString strfilename=();SetDlgItemText(IDC_filename,strfilename);CString mtime;CClientDC dc(this);hour=0;minute=0;second=0;(RGB(124,252,0));" #include "Mp3播放器"#include ""#include ""#include "" ." menu item to system menu.ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != NULL){CString strAboutMenu;(IDS_ABOUTBOX);if (!()){pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);}}The framework does this automaticallyFor MFC applications using the document/view model,void CMp3Dlg::OnPaint(){if (IsIconic()){CPaintDC dc(this); HCURSOR CMp3Dlg::OnQueryDragIcon(){return (HCURSOR) m_hIcon;}void CMp3Dlg::Onexit(){p3)|*.mp3|""wma文件(*.wma)|*.wma|""wav文件(*.wav)|*.wav|";CFileDialogdlg(true,NULL,NULL,OFN_HIDEREADONLY|OFN_ALLOWMULTISELECT|OFN_ENABLESIZING,filef iler);if ()==IDOK){CString strfilepath=();CString strfilename=();SetDlgItemText(IDC_filename,strfilename);CString mtime;CClientDC dc(this);hour=0;minute=0;second=0;(RGB(124,252,0));"#include ""#ifdef _DEBUG#undef THIS_FILEstatic char THIS_FILE[]=__FILE__;#define new DEBUG_NEW#endif////////////////////////////////////////////////////////////////////////#if !defined(AFX_MP3_H__20D325E5_A96A_43FE_A485_92F57C68DD0D__INCLUDED_)#define AFX_MP3_H__20D325E5_A96A_43FE_A485_92F57C68DD0D__INCLUDED_#if _MSC_VER > 1000#pragma once#endif // _MSC_VER > 1000#include ""class Mp3{public:Mp3();virtual ~Mp3();HWND m_hWnd; //记录当前窗口的句柄DWORD DeviceID;//指定播放音乐的设备IDMCI_OPEN_PARMS mciopenparms; //指定打开音乐文件的参数void Load(HWND hwnd,CString Strfilepath);DWORD getinformation(DWORD item);void Play();void Pause();void resum();void Stop();};#endif // !defined(AFX_MP3_H__20D325E5_A96A_43FE_A485_92F57C68DD0D__INCLUDED_)。
mfc音乐播放器课程设计
mfc音乐播放器 课程设计一、课程目标知识目标:1. 学生能理解MFC音乐播放器的原理,掌握其基本组成和功能。
2. 学生能掌握MFC编程的基本概念,如窗口创建、消息处理等。
3. 学生能了解音频文件格式及其在音乐播放器中的应用。
技能目标:1. 学生能运用MFC编程知识,独立设计并实现一个简单的音乐播放器界面。
2. 学生能通过编程实现音乐播放、暂停、停止、切换歌曲等功能。
3. 学生能通过课程实践,提高解决问题的能力和团队协作能力。
情感态度价值观目标:1. 培养学生对计算机编程的兴趣,激发学习积极性。
2. 培养学生勇于尝试、不断探索的精神,增强自信心。
3. 培养学生团队协作意识,提高沟通能力。
课程性质:本课程为信息技术课程,以实践操作为主,理论讲授为辅。
学生特点:六年级学生具备一定的计算机操作基础,对编程有一定兴趣,但编程技能和理论知识相对薄弱。
教学要求:结合学生特点,课程设计注重实践操作,以项目驱动教学,让学生在动手实践中掌握知识,提高技能。
同时,注重培养学生的情感态度价值观,激发学习兴趣,提高综合素质。
通过分解课程目标,为教学设计和评估提供明确的方向。
1. MFC基础知识:介绍MFC框架、窗口创建、消息映射等基本概念,让学生理解MFC编程的基本原理。
教材章节:第三章《MFC编程基础》内容安排:第1节至第3节2. 音频文件格式:讲解常见的音频文件格式,如MP3、WAV等,以及它们在音乐播放器中的应用。
教材章节:第四章《数字音频处理》内容安排:第1节3. 音乐播放器功能实现:引导学生学习音乐播放器的基本功能,如播放、暂停、停止、切换歌曲等,并通过编程实现。
教材章节:第五章《MFC音乐播放器设计与实现》内容安排:第1节至第4节4. 项目实践:指导学生以小组形式,设计并实现一个具有基本功能的MFC音乐播放器。
教材章节:第六章《项目实践》内容安排:第1节至第3节5. 教学进度:共安排8课时,其中MFC基础知识2课时,音频文件格式1课时,音乐播放器功能实现4课时,项目实践1课时。
基于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)函数来实现并且判断暂停按钮是否是继续,如是则改为暂停。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
毕业设计(论文)题目音乐播放系统设计专业信息与计算科学年级 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++ 编辑工具对播放器进行编写。
同时给出了详细的系统设计过程、部分界面图及主要功能运行流程图,本文还对开发过程中遇到的问题和解决方法进行了详细的讨论,该音乐播放器集播放、暂停、停止、快进、快退、下一曲、上一曲、音量调节等功能与一体,性能良好。
在开发的过程中采用瀑布模型。
第一阶段首先对项目进行全面、仔细的需求分析,并准确做出项目进度安排,明确每个阶段的任务;第二阶段是进行项目分模块编码;第三阶段对项目进行全面的测试和系统集成测试。
本程序利用系统的MCI(media controller interface)命令接口来编程,具有体积小、系统资源占用少等优点。
关键词:Visual C++;MCI;播放器;音频IAbstractThe music is a sound symbolic expressingthe mood and thinking. It is thecarrier of people's thinking. Music is the purpose and content, which implied theauthor's life experiences and feelings. A good pc music player can not only provide good music playing effect, but also provide users with convenientoperation.The player is using C language programming and Visual C++ 6.0 editing tools. Giving a detailed system design process, part of the interface map and run flow chart of the main function, this article discussed in detail on problems and solution method in the development process. The music playerset to play, pause, stop, fast forward, rewind, and the next one, on a volume adjustment functions with one good performance. The model in the development process is Waterfall model. The first phaseis the project of comprehensive and careful needs analysis, accurately making the project scheduleand clearing each stage of the task. The second phase of theproject is sub-module coding. The third stage, the project testing and system integration testing.This player is based on C,referring to MCI(media controller interface) from system,having many good functions such as little siz e,taking up less system resource and so on.Keywords:Visual C++;MCI;media player;AudioII毕业设计(论文)1 前言1.1软件开发背景及意义欣赏美妙的音乐是我们每个人在学习和工作之余都会做的事,面对网络上和市场上花样繁多的播放器,它们不但用起来感到容易上手,而且各种功能操作很方便。
大家都用过“酷狗音乐”,“QQ音乐”,“千千静听”等非常优秀的播放器,但是在使用的过程中总会有些瑕疵,而且这些公司也没有开放它们的源代码。
我设计的这个“基于C语言的音乐播放器”除了能够播放一些常见的音频格式外还易于操作和使用。
此软件具备一般播放器的常用功能,界面沿用了标准的Windows窗口,主窗口的功能有对要播放文件的各种控制,所播放曲目的名称,通过主窗口能有选择的播放单个文件,循环播放和单次播放目录表中的文件。
采用发环Windows编程接口,操作系统是Windows XP,用到的主要技术为C语言,Visual C++编辑软件。
本次毕业设计的意义在于结合C语言提供的思想和多样的媒体控制方法,结合用户对媒体播放器的要求和使用音乐播放器的习惯,设计了一款界面简单明了,操作简单实,可以实现在播放列表中加载一个或多个多媒体文件;用户能随意改变播放顺序;自动连续播放多个多媒体文件;在下次打开播放器时,能够自动加载上次的播放列表;在播放列表的多媒体文件播放完后可以选择自动关闭播放器或者循环播放等功能的媒体播放器。
1.2发展现状及趋势音乐播放器的设计是一门集数字多媒体技术和计算机技术于一体的综合设计。
随着中国宽带网络技术、计算机技术的发展,越来越多的人们开始重视多媒体播放器的应用与发展。
在当今信息社会以多媒体为特征的信息产业和信息技术的发展及应用对人类社会产生的作用及影响越来越明显,越来越重要,而音乐作为多媒体中的一个不可或缺的部分能改变信息的包装,实现了知识信息数字化,为人们获得知识信息提供了极大的方便和无尽的乐趣。
友好的人机界面、诱人的电子游艺节目、各种各样的多媒体教学软件、五花八门的信息家电和方便高效的网上查询、身临其境的多媒体导购系统等等,都渗透着多媒体的作用,它将人们带进了一个有声有色的世界。
与此同时,多媒体的应用和发展,极大地促进了各行各业的相互渗透和飞速发展,极大的改变了人类社会的工作环境和生活方式。
可以毫不夸张地说,多媒体产业的出现和发展,不仅掀起了计算机工业的一次革命浪潮,也正在深刻地影响着人类社会发生巨大的变革。
多媒体技术的发展在很大程度上依赖于多媒体软件开发的水平。
多媒体技术是当今信息技术领域中发展最快、最活跃的技术,是新一代电子技术竞争和发展的焦点。
多媒体技术融计算机、文本、声音、动画、图像、视频和通信等多种功能于一体,借助于日益普及的高速信息网,可以实现计算机的全球联网和信息资源的共享,因此被广泛的应用于咨询服务、教育、图书、通信、金融、军事、医疗等诸多行业,并正潜移默化地改变着我们的生活面貌。
人类社会逐渐进入信息化的时代,社会分工越来越明细,人际交往越来越频繁,分布性、交互性、群体性和协同性将成为人们劳动方式和生活方式的基本特征,其中大多数工作都需要群体的共同努力才能完成。
但在现实生活中影响和阻碍上述工作方式的因素有很多,例如打电话时对方不在。
即便是电话交流也只能通过声音,却很难看见一些重要的图纸资料,如果要面对面的交流讨论,需要昂贵的差旅费用和费时的长途旅行,这种方式不仅造成了效率低、费时长、而且开销大。
如今,随着通信技术和多媒体计算机技术的发展,两者相结合形成的分布式多媒体信息系统和多媒体通信较好地解决上述问题。
随着Internet的逐渐普及和网络技术的不断发展,人们对网络产品的需求也在不断增第1页共19页陆盼、王森:音乐播放器的设计与实现长。
如今网络上流行的音乐播放器虽然很多,但或多或少都存在一些缺陷,例如:没有记忆播放的功能;下一次播放的时候不能从上一次离开的曲目开始;不能有效的保护媒体播放器里面的歌曲专有性;没有身份认证功能;界面太复杂以及操作太难;功能组合与用户的习惯相违背等。
随着人们对娱乐要求的不断提高,一款别致的、贴近用户操作习惯的音乐播放器非常值得去研究和开发。
1.3主要研究方法及过程研究方法:主要采用行动文献法和研究法。
文献法,广泛收集整理文献资料,如经典期刊,国内外前沿研究,以及指导老师推荐的书目,为今后项目开发提供具有时代性,创造性的正面指导。
行动分析法,制定个性研究方案,通过我们日常实践情况进行分析,再研究调整重新进行实践。
首先,了解有关音乐播放器的有关技术,并对现在主流的音乐播放器进行测试并将它们不足之处改进。
并将经验总结、记录,形成有价值的文字。
研究手段:主要是结合之前开发经验,联系项目参考文献和需求分析,根据项目的特点选择适当开发工具(VisualC++)和编程技术(编程语言C/C++)制定项目开发方案。
实验方案:采用瀑布模型。
首先对项目进行全面、仔细的需求分析,并准确做出项目进度安排,明确每个人的职责和任务。
第二阶段,是进行项目分模块编码。
第三阶段,选择适当的测试方法,在完成项目编码后,进行软件测试,并准备填写测试用例。