MFC音乐播放器(实验报告)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

音乐播放器大型实验报告

通过动手制作基于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);

MessageBox(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_V ALUE,(DWORD)(LPVOID)&setvolume);

return 0;

}

3)编辑各个控件的代码

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

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

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

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

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

相关文档
最新文档