MFC音乐播放器实验报告.docx

上传人:b****3 文档编号:3941513 上传时间:2023-05-06 格式:DOCX 页数:20 大小:2.29MB
下载 相关 举报
MFC音乐播放器实验报告.docx_第1页
第1页 / 共20页
MFC音乐播放器实验报告.docx_第2页
第2页 / 共20页
MFC音乐播放器实验报告.docx_第3页
第3页 / 共20页
MFC音乐播放器实验报告.docx_第4页
第4页 / 共20页
MFC音乐播放器实验报告.docx_第5页
第5页 / 共20页
MFC音乐播放器实验报告.docx_第6页
第6页 / 共20页
MFC音乐播放器实验报告.docx_第7页
第7页 / 共20页
MFC音乐播放器实验报告.docx_第8页
第8页 / 共20页
MFC音乐播放器实验报告.docx_第9页
第9页 / 共20页
MFC音乐播放器实验报告.docx_第10页
第10页 / 共20页
MFC音乐播放器实验报告.docx_第11页
第11页 / 共20页
MFC音乐播放器实验报告.docx_第12页
第12页 / 共20页
MFC音乐播放器实验报告.docx_第13页
第13页 / 共20页
MFC音乐播放器实验报告.docx_第14页
第14页 / 共20页
MFC音乐播放器实验报告.docx_第15页
第15页 / 共20页
MFC音乐播放器实验报告.docx_第16页
第16页 / 共20页
MFC音乐播放器实验报告.docx_第17页
第17页 / 共20页
MFC音乐播放器实验报告.docx_第18页
第18页 / 共20页
MFC音乐播放器实验报告.docx_第19页
第19页 / 共20页
MFC音乐播放器实验报告.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

MFC音乐播放器实验报告.docx

《MFC音乐播放器实验报告.docx》由会员分享,可在线阅读,更多相关《MFC音乐播放器实验报告.docx(20页珍藏版)》请在冰点文库上搜索。

MFC音乐播放器实验报告.docx

MFC音乐播放器实验报告

音乐播放器大型实验报告

 

 

一、实验目的

通过动手制作基于VC++的音乐播放器,了解播放器的原理。

并通过自己动手,在windows播放器组件的基础上,用自己的算法,去实现自己的界面和自己的播放模式。

二、总体设计

(1)在visualc++环境下设计出一个音乐播放器的界面:

具有打开音乐文件、播放歌曲,、暂停或恢复、停止、调节音量大小的功能;

(2)修改各个控件的属性,并为其添加消息函数;

(3)用媒体控制接口MCI编程为各个消息函数添加代码;

(4)对该音乐播放器编译--运行。

 

三、实验步骤

(一):

创建MFC应用程序框架:

打开visualc++软件,选择“文件”—“新建”新建一个应用程序文档MFCAppWizard[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"

#pragmacomment(lib,"Winmm.lib")

2)定义全局变量及成员函数。

//定义三个全局变量

HWNDm_hWnd;

DWORDDeviceID;

MCI_OPEN_PARMSmciopenparms;

voidLoad(HWNDhWnd,CStringstrFilepath)

{

m_hWnd=hWnd;

mciSendCommand(DeviceID,MCI_CLOSE,0,0);//在加载文件前先清空上一次播放的设备

mciopenparms.lpstrElementName=strFilepath;//将音乐文件路径传给设备

DWORDdwReturn;

if(dwReturn=mciSendCommand(NULL,MCI_OPEN,MCI_OPEN_ELEMENT|MCI_WAIT,(DWORD)(LPVOID)&mciopenparms))

{

//如果打开文件失败,则将出错信息储存在buffer,并显示出错警告

charbuffer[256];

mciGetErrorString(dwReturn,buffer,256);

MessageBox(hWnd,buffer,"出错警告!

",MB_ICONHAND|MB_ICONERROR|MB_ICONSTOP);

}

DeviceID=mciopenparms.wDeviceID;

//打开文件成功就关联文件到设备

}

voidplay()

{

MCI_PLAY_PARMSmciplayparms;

mciplayparms.dwCallback=(DWORD)m_hWnd;

mciplayparms.dwFrom=0;//每次播放都是从0开始播放

mciSendCommand(DeviceID,MCI_PLAY,MCI_FROM|MCI_NOTIFY,(DWORD)(LPVOID)&mciplayparms);

}

voidpause()

{

mciSendCommand(DeviceID,MCI_PAUSE,0,0);

}

voidresume()

{

mciSendCommand(DeviceID,MCI_RESUME,0,0);

}

voidstop()

{

mciSendCommand(DeviceID,MCI_STOP,0,0);

mciSendCommand(DeviceID,MCI_CLOSE,0,0);

//当点击停止按钮时,将所有的信息都清除掉

}

DWORDsetvolume(DWORDvol)

{

MCI_DGV_SETAUDIO_PARMSsetvolume;//这是设置音量的参数数据结构

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);

return0;

}

3)编辑各个控件的代码

A)双击“浏览”按钮,弹出一个对话框,选择OK,出现代码,添加:

charszFileFilter[]="mp3文件(*.mp3)|*.mp3|"

"wma文件(*.wma)|*.wma|"

"wav文件(*.wav)|*.wav|"

"所有文件(*.*)|*.*|";

CFileDialogdlg(true,NULL,NULL,OFN_HIDEREADONLY,szFileFilter);

if(dlg.DoModal()==IDOK)

{

CStringstrFilepath=dlg.GetPathName();

CStringstrFilename=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,出现代码,添加:

CStringstrtemp;

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)编辑滑块及编辑框按钮。

右击滑块,选择建立类向导,选择MemberVariables,选择AddVarriable…,在Membervariablename:

处改为m_slider.Category:

处改为Control

右击编辑框,操作同滑块,Membervariablename:

处改为m_int.。

Variabletype:

处改为int

右击滑块,选择建立类向导,在MessageMaps页面,ObjectIDs:

选择IDC_SLIDER,在Messages:

处选择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界面,就可以添加歌曲,播放音乐了。

至此一个简单的音乐播放器就完成了。

五、总结分析

通过此次实验,我不仅再次熟悉了visualC++环境,还学会了如何使用MCI在visualC++环境下制作一个音乐播放器,,而且也牢固的掌握了媒体控制接口MCI的编程接口知识,当真的做出一个简单的音乐播放器时,非常的开心。

以后要多多学习这方面的知识,争取了解更多的软件基本原理。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2