想用vc++做一个mp3播放器.但是不知道如何着手,
本人正在学c++,还没有学过mfc,想问一下做这个需要哪些方面的
知识,思路是怎么样的,我现在手头有一份mp3播放器的原代码,但是看
不懂,郁闷啊!这个月底就要交了,急啊,大虾们帮小弟想想办法啊,先谢过了!
本人正在学c++,还没有学过mfc,想问一下做这个需要哪些方面的
知识,思路是怎么样的,我现在手头有一份mp3播放器的原代码,但是看
不懂,郁闷啊!这个月底就要交了,急啊,大虾们帮小弟想想办法啊,先谢过了!
解决方案 »
- 求助:编写的嗅探器,运行错误,内存不能为read
- 64位下,com组件库也是从注册表的CLSID键 查询组件是否注册的吗??
- MFC的多线程体现在哪?
- 在VC下如何使用MSFlexGrid,最好给个例子,谢了!
- LoadImage函数问题
- 20分小问题一个!!!怎样获得CEDIT控件密码输入方式下的内容,请说明详细点好吗
- VC对话框资源--总提示编译错误
- pictrure control显示本地图片
- duilib的CEditUI控件,输入的时候丢失焦点
- 请问各位高手,msc的后缀是什么样的文件,能在VC中使用吗?
- 如何反写字符串?用TextOut输出
- 怎么在运行时设置控件的Transparent属性?
在文档区有现成的
估计用"mp3"作关键字可以搜到
MCIERROR mciSendCommand(MCIDEVICEID wDeviceID, UINT uMsg,DWORD dwFlags, DWORD dwParam )
或者
MCIERROR mciSendString(LPCTSTR lpszCommand,LPTSTR lpszReturnString, UINT cchReturn, HANDLE hwndCallback)吧很好用的,你看看MSDN马上就能明白了。比较难得还有wave系列的函数。
看看这个网址吧http://www.voiceangel.myetang.com/vcvoice.htm
//-----------------------------------------------------------------------------
// Purpose: Get The Play Item's Status
//-----------------------------------------------------------------------------
DWORD WINAPI getinfo(DWORD item,DWORD& m_count)
{
MCI_STATUS_PARMS mcistatusparms;
mcistatusparms.dwCallback=NULL;//(DWORD)GetSafeHwnd();
mcistatusparms.dwItem=item;
mcistatusparms.dwReturn=0;
mciSendCommand(m_count,MCI_STATUS,MCI_STATUS_ITEM,(DWORD)&mcistatusparms);
return mcistatusparms.dwReturn;
}//-----------------------------------------------------------------------------
// Purpose: Play Mp3 (Call It Via AfxBeginThread)
// Input : pParam - Mp3 FileName
// Output : UINT
//-----------------------------------------------------------------------------
UINT PlayMp3(LPVOID pParam)
{
MCI_OPEN_PARMS mciopenparms;
MCI_PLAY_PARMS mciplayparms;
mciopenparms.lpstrElementName= *((CString*)pParam);
mciopenparms.lpstrDeviceType=NULL;
mciopenparms.dwCallback=NULL;
MCIERROR e = mciSendCommand(0,MCI_OPEN,MCI_DEVTYPE_WAVEFORM_AUDIO,(DWORD)(LPVOID)&mciopenparms);//マCIノ雎クキ「ヒヘテ・隝鋧「
DWORD m_count=mciopenparms.wDeviceID;
mciplayparms.dwCallback= NULL;//(DWORD)GetSafeHwnd();
DWORD cdlen=getinfo(MCI_STATUS_LENGTH,m_count);
DWORD cdto=MCI_MAKE_HMS(MCI_HMS_HOUR(cdlen),MCI_HMS_MINUTE(cdlen),MCI_HMS_SECOND(cdlen));
mciplayparms.dwFrom=0;
mciplayparms.dwTo=cdto;
e = mciSendCommand(mciopenparms.wDeviceID,MCI_PLAY,MCI_WAIT|MCI_TO|MCI_FROM,(DWORD)(LPVOID)& mciplayparms);
DeleteFile(mciopenparms.lpstrElementName);
SAFE_DELETE(pParam);
return 0;
}//-----------------------------------------------------------------------------
// Purpose: Play Mp3 File
// Input : sFileName - Mp3 File Name
// Output : void WINAPI
//-----------------------------------------------------------------------------
void WINAPI PlayMp3File(CString sFileName)
{
MCI_OPEN_PARMS mciopenparms;
MCI_PLAY_PARMS mciplayparms;
mciopenparms.lpstrElementName= sFileName;
mciopenparms.lpstrDeviceType=NULL;
mciopenparms.dwCallback=NULL;
MCIERROR e = mciSendCommand(0,MCI_OPEN,MCI_DEVTYPE_WAVEFORM_AUDIO,(DWORD)(LPVOID)&mciopenparms);
DWORD m_count=mciopenparms.wDeviceID;
mciplayparms.dwCallback= NULL;//(DWORD)GetSafeHwnd();
DWORD cdlen=getinfo(MCI_STATUS_LENGTH,m_count);
DWORD cdto=MCI_MAKE_HMS(MCI_HMS_HOUR(cdlen),MCI_HMS_MINUTE(cdlen),MCI_HMS_SECOND(cdlen));
mciplayparms.dwFrom=0;
mciplayparms.dwTo=cdto;
e = mciSendCommand(mciopenparms.wDeviceID,MCI_PLAY,MCI_TO|MCI_FROM,(DWORD)(LPVOID)& mciplayparms);
}