MFC音乐播放器(实验报告)_音乐播放器实验报告
MFC音乐播放器(实验报告)由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“音乐播放器实验报告”。
音乐播放器大型实验报告
一、实验目的通过动手制作基于VC++的音乐播放器,了解播放器的原理。并通过自己动手,在windows播放器组件的基础上,用自己的算法,去实现自己的界面和自己的播放模式。
二、总体设计
(1)在visual c++环境下设计出一个音乐播放器的界面:具有打开音乐文件、播放歌曲,、暂停或恢复、停止、调节音量大小的功能;
音乐播放器
打开文件播放歌曲暂停播放停止播放音量控制(2)修改各个控件的属性,并为其添加消息函数;(3)用媒体控制接口MCI编程为各个消息函数添加代码;(4)对该音乐播放器编译--运行。
三、实验步骤
(一):创建MFC应用程序框架:
打开visual c++软件,选择“文件”—“新建”新建一个应用程序文档MFC AppWizard[exe],将工程命名为MFC音乐播放器,选择合适的保存位置,然后“确定”选择基本对话框,完成设置。
(二)编辑对话框:
在工作区内,设计出一个音乐播放器的界面,添加按钮控件:浏览、播放、暂停、停止,添加一个滑动条控件,一个静态文本,两个编辑框。
然后,依次修改各控件的属性:
1)右击静态文本,选择属性,将标题改为音乐名称:
2)右击编辑框,选择属性,将ID改为IDC_filename 3)右击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)定义全局变量及成员函数。
//定义三个全局变量 HWND m_hWnd;DWORD DeviceID;MCI_OPEN_PARMS mciopenparms;
void Load(HWND hWnd,CString strFilepath){ m_hWnd=hWnd;mciSendCommand(DeviceID,MCI_CLOSE,0,0);//在加载文件前先清空上一次播放的设备
mciopenparms.lpstrElementName=strFilepath;//将音乐文件路径传给设备
DWORD dwReturn;if(dwReturn=mciSendCommand(NULL,MCI_OPEN,MCI_OPEN_ELEMENT|MCI_WAIT,(DWORD)(LPVOID)&mciopenparms)){
//如果打开文件失败,则将出错信息储存在buffer,并显示出错警告
char buffer[256];
mciGetErrorString(dwReturn,buffer,256);
MeageBox(hWnd,buffer,“出错警告!”,MB_ICONHAND|MB_ICONERROR|MB_ICONSTOP);
} DeviceID=mciopenparms.wDeviceID;//打开文件成功就关联文件到设备 }
void play(){ MCI_PLAY_PARMS mciplayparms;mciplayparms.dwCallback=(DWORD)m_hWnd;mciplayparms.dwFrom=0;//每次播放都是从0开始播放
mciSendCommand(DeviceID,MCI_PLAY,MCI_FROM|MCI_NOTIFY,(DWORD)(LPVOID)&mciplayparms);}
void pause(){ mciSendCommand(DeviceID,MCI_PAUSE,0,0);} void resume(){ mciSendCommand(DeviceID,MCI_RESUME,0,0);} void stop(){ mciSendCommand(DeviceID,MCI_STOP,0,0);mciSendCommand(DeviceID,MCI_CLOSE,0,0);//当点击停止按钮时,将所有的信息都清除掉 } DWORD setvolume(DWORD vol){ MCI_DGV_SETAUDIO_PARMS setvolume;//这是设置音量的参数数据结构
setvolume.dwCallback=NULL;setvolume.dwItem=MCI_DGV_SETAUDIO_VOLUME;//动作是设置音量
setvolume.dwValue=vol;//音量值是vol mciSendCommand(DeviceID,MCI_SETAUDIO,MCI_DGV_SETAUDIO_ITEM|MCI_DGV_SETAUDIO_VALUE,(DWORD)(LPVOID)&setvolume);return 0;} 3)编辑各个控件的代码
A)双击“浏览”按钮,弹出一个对话框,选择OK,出现代码,添加:
char szFileFilter[]=“mp3文件(*.mp3)|*.mp3|”
“wma文件(*.wma)|*.wma|”
“wav文件(*.wav)|*.wav|”
“所有文件(*.*)|*.*|”;
CFileDialog dlg(true,NULL,NULL,OFN_HIDEREADONLY,szFileFilter);if(dlg.DoModal()==IDOK){ CString strFilepath=dlg.GetPathName();CString strFilename=dlg.GetFileName();SetDlgItemText(IDC_filename,strFilename);Load(this->m_hWnd,strFilepath);GetDlgItem(IDC_play)->EnableWindow(true);//文件读取成功时所有按钮变可选的GetDlgItem(IDC_pause)->EnableWindow(true);
GetDlgItem(IDC_stop)->EnableWindow(true);} B)双击“播放”按钮,弹出一个对话框,选择OK,出现代码,添加:
play();SetDlgItemText(IDC_pause,“暂停”);
C)双击“暂停”按钮,弹出一个对话框,选择OK,出现代码,添加:
CString strtemp;GetDlgItemText(IDC_pause,strtemp);//获取按钮状态 if(strtemp.Compare(“暂停”)==0){ pause();SetDlgItemText(IDC_pause,“恢复”);}
if(strtemp.Compare(“恢复”)==0){ resume();SetDlgItemText(IDC_pause,“暂停”);}
D)双击“停止”按钮,弹出一个对话框,选择OK,出现代码,添加:
stop();
SetDlgItemText(IDC_pause,“暂停”);GetDlgItem(IDC_play)->EnableWindow(false);//当stop按钮按下时,播放和暂停应该均不可用 GetDlgItem(IDC_pause)->EnableWindow(false);
E)编辑滑块及编辑框按钮。
右击滑块,选择建立类向导,选择Member Variables,选择Add Varriable„,在Member variable name:处改为m_slider.Category:处改为Control
右击编辑框,操作同滑块,Member variable name:处改为m_int.。Variable type:处改为int
右击滑块,选择建立类向导,在Meage Maps页面,Object IDs:选择IDC_SLIDER,在Meages:处选择NM_CUSTOMDRAW。
添加滑块及编辑框的代码在图示位置处添加
m_slider.SetRange(0,1000);//滑块的移动范围0~1000 m_slider.SetPos(500);//滑块指针的初始位置设为500代表初始音量为50 GetDlgItem(IDC_play)->EnableWindow(false);//文件没有读取时所有按钮应该是不可选的GetDlgItem(IDC_pause)->EnableWindow(false);GetDlgItem(IDC_stop)->EnableWindow(false);
双击滑块按钮,弹出一个对话框,选择OK,添加代码
UpdateData(true);m_int=m_slider.GetPos()/10;setvolume(m_slider.GetPos());UpdateData(false);
四、调试运行
调试时无错误,运行时出来一个MFC界面,就可以添加歌曲,播放音乐了。至此一个简单的音乐播放器就完成了。
五、总结分析
通过此次实验,我不仅再次熟悉了visual C++环境,还学会了如何使用MCI在visual C++环境下制作一个音乐播放器,而且也牢固的掌握了媒体控制接口MCI的编程接口知识,当真的做出一个简单的音乐播放器时,非常的开心。以后要多多学习这方面的知识,争取了解更多的软件基本原理。
音乐播放器设计文档在 android平台上开发音乐播放器是一个全新的挑战。这次通过 android QQ music 项目实战,总结出一些方法和经验,希望能够对移动平台的设计尤其是多媒体这......
一、综述本课题国内外研究动态,说明选题的依据和意义1.1课题的背景和意义随着科技的进步,手机的功能也不断的得到丰富,从最早的“大哥大”到现在的商务PDA手机,智能手机,音乐手机......
刀豆文库小编为你整合推荐8篇音乐播放器作文,也许这些就是您需要的文章,但愿刀豆文库能带给您一些学习、工作上的帮助。......
报告应该清晰明确,逻辑严谨,具备可读性和可操作性。报告的语言要简明扼要,避免使用冗长的句子和复杂的词汇。欢迎查阅以下各类报告范文,为你的报告写作提供参考。mfc实验报告心......
华东交通大学课程项目学 院:软件学院 ______ 课程名称: Android应用开发___________ 项目名称: ___ _音乐播放器________ 学生名字: ____ ________ 学生班级: ____ ______ 授课教......
