当前位置:文档之家› 音乐播放器实验报告

音乐播放器实验报告

本次课程设计中虽然可以实现播放、暂停以及音量等功能,但仍然存在着放多不足,比显示播放时间的功能以及循环播放功能始终无法实现,如果有时间一定会好好研究。
课设是辛苦劳累的,但是收获同样是巨大的,在课设中每解决一个问题,那种成就感是无法言语的,课设中第一次调试程序时出现了逻辑错误,编译能通过,运行始终无法通过,后来经过思考,进行了多次修改调试之后得到了运行结果。
{
MCI_OPEN_PARMS mcio;
mciSendCommand(m_mciID,MCI_CLOSE,0,NULL);
mcio.lpstrDeviceType=_T("MPEGAudio");
mcio.lpstrElementName=mp3[CurID].pathName;
mciSendCommand(m_mciID,MCI_OPEN,MCI_OPEN_ELEMENT,(DWORD)&mcio);
{
m_MusicList.DeleteAllItems();
for(int i=0;i<CurSize;++i)
{
m_MusicList.InsertItem(i,mp3[i].mp3Name);
}
displayname();
}
void CMp3PlayerDlg::displayname()//播放的文件名
{
Pausemusic();
KillTimer(1);
State=0;
}
else
{
mciSendCommand(m_mciID,MCI_RESUME,0,NULL);
SetTimer(1,1000,NULL);
State=1;
}
}
void CMp3PlayerDlg::StoreList()//存储列表
先单击‘文件’按钮,在本地磁盘找打音乐文件,然后将文件加入,添加的歌曲显示在播放列表中。选中播放列表的歌曲,然后单击‘播放’按扭,开始播放音乐,直到播放完后停止。在播放音乐文件期间,单击‘暂停’按钮,可以暂停播放音乐,再次单击‘暂停’按钮时,又可以继续播放。同时单击‘+’,‘-’按钮,可以控制音量的大小。单击‘上一曲’按钮,将播放播放列表中当前曲目的上一曲,‘下一曲’按钮,播放播放列表中当前曲目的下一曲。同时显示歌曲名和歌词。
四、系统的实现及调试
五、系统的使用说明
六、总结
七、程序主要源代码
八、课程设计任务书
一、课题的介绍和课题的任务
音乐播放器是一种用于播放各种音乐文件的多媒体播放软件。它涵盖了各种音乐格式的播放工具,比如:MP3播放器,WMA播放器,MP4播放器等。它们不仅界面美观,而且操作简单,带你进入一个完美的音乐空间。利用MFC应用程序、媒体控制接口MIC的基本知识,设计一个MP3播放器。要求能够播放常用Windows音频格式的文件;实现播放控制:播放、暂停、清空播放列表、音量增减、添加歌曲、上一曲,下一曲等功能;实现从本地磁盘加入文件,然后对其进行播放。
m_lrc="";
if(getlrc())
displaylrc();
else
{
KillTimer(2);
m_lrc="没有找到相应歌词!";
}
Getlengh();
displayname();
}
void CMp3PlayerDlg::OnDblclkMusicList(NMHDR* pNMHDR, LRESULT* pResult)
注意:添加完文件后,应先选中播放列表中的歌曲在点击‘播放’按钮才能播放。
六、总结
经过一周的面向对象程序课程设计,我学到了很多。在这一周的实际动手学习中,我对VC++这门课程有了更深刻的认识,掌握了用MFC创建基于对话框的应用程序,同时了解了MCI相关知识。这次课程设计我做了MP3播放器的设计,MP3播放器主要对常用Windows音频格式的文件实现播放控制:播放歌曲、暂停播放、音量的控制、上一曲、下一曲等功能。
{
ar<<mp3[i].mp3Name<<mp3[i].pathName;
}
ar.Close();
file.Close();
}
}
void CMp3PlayerDlg::ReadList()//读取列表
{
CFile file;
if(file.Open("E:\\My music\\song\\huang.hzy",CFile::modeRead))
面向对象程序设计课程设计
设计说明书
音乐播放器(Mp3 Player)
起止日期:2012年5月27日至2012年6月2日
学生姓名
孙见任
班级
计算机科学与技术101
学号
10408100124
成绩
指导教师(签字)
计算机与通信学院
2012年6月2日
一、课题的介绍和课题的任务
二、设计的要求
三、系统的分析和系统中功能的设计
4、播放列表功能:显示添加的歌曲
5、清空播放列表功能:清除播放列表中的全部歌曲。
6、音量功能:控制音量的大小
7、上下曲:改变播放歌曲的顺序。
8、歌词显示功能:显示当前播放歌曲的歌词。
四、系统的实现及调试
//说明:主要介绍系统编码的实现以及编码中遇到的问题和解决方法。
五、系统的使用说明
该系统界面包括添加、播放/暂停、清空播放列表、播放列表、音量增减、上一曲、下一曲、歌词显示区等按钮。
{
mciSendCommand(m_mciID,MCI_PAUSE,0,NULL);
}
void CMp3PlayerDlg::OnPlayOrPause()//播放,暂停
{
// TODO: Add your control notification handler code here
if(State==1)
MCI_STATUS_PARMS StatusParms;
StatusParms.dwItem = MCI_FORMAT_MILLISECONDS|MCI_STATUS_LENGTH;
mciSendCommand (m_mciID, MCI_STATUS, MCI_WAIT | MCI_STATUS_ITEM,(DWORD)&StatusParms);
if(nIDEvent==1)
{
if(CurPos==lengh/1000)
{
KillTimer(1);
srand(time(0));
CurID=rand()%CurSize;
CurPos=0;
Playmusic(CurID);
}
m_progress.SetPos(++CurPos);
}
else
if(nIDEvent==2)
m_mciID=mcio.wDeviceID;
MCI_PLAY_PARMS mcip;
mcip.dwCallback=(long)GetSafeHwnd();
mcip.dwFrom=CurPos*1000;
SetVolume();
mciSendCommand(m_mciID,MCI_PLAY,MCI_FROM,(DWORD)&mcip);
{
m_lrc="";
for(int i=CurLine;i<TotleLine;++i)
m_lrc+=lrc[i];
CurLine+=1;
UpdateData(false);
}
CDialog::OnTimer(nIDEvent);
{
m_CurName=mp3[CurID].mp3Name;
UpdateData(false);
}
void CMp3PlayerDlg::displaylrc()//播放歌词
{
UpdateData(false);
SetTimer(2,8000,NULL);
}
void CMp3PlayerDlg::OnClear() //清空列表
七、程序主要源代码:
void CMp3PlayerDlg::OnAdd() //添加文件
{
// TODO: Add your control notification handler code here
char sBuffer[6000];
sBuffer[0]=0;
CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_ALLOWMULTISELECT,"MP3文件(*mp3)|*mp3||",NULL);
{
mp3[i].ID=i+1;
mp3[i].pathName=dlg.GetNextPathName(pos);
cs=mp3[i].pathName;
n=cs.ReverseFind('\\');
mp3[i].mp3Name=cs.Mid(n+1);
CurSize++;
}
display();
}
}
void CMp3PlayerDlg::Playmusic(int ID)//播放
CurPos=0;
Playmusic(CurID);
State=1;
*pResult = 0;
}
void CMp3PlayerDlg::Stopmusic()//暂停
{
mciSendCommand(m_mciID,MCI_STOP,MCI_WAIT,NULL);
}
相关主题