《013音樂播放器》由會員分享,可在線閱讀,更多相關(guān)《013音樂播放器(5頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、一、基礎(chǔ)知識
1.strrchr(str,ch); strchr char
2.OPENFILENAME結(jié)構(gòu)體
3.所有的MCI命令字符串都是通過多媒體API函數(shù)mciSendString傳遞給MCI的,該函數(shù)的聲明為:
MCIERROR mciSendString(
LPCTSTR lpszCommand, //MCI命令字符串
LPTSTR lpszReturnString, //存放反饋信息的緩沖區(qū)
UINT cchReturn, //緩沖區(qū)的長度
HANDLE hwndC
2、allback //回調(diào)窗口的句柄,一般為NULL
); //若成功則返回0,否則返回錯誤碼。
mciSendString播放音樂(包含在mmsystem.h中,還需要把winmm.lib這個庫文件包含進來,包含這個庫文件在工程/設(shè)置中的連接標(biāo)簽中進行),配合GetOpenFileName實現(xiàn)播放器
由于Mcisendstring播放音樂只支持短文件名,所以文件放到很深的目錄中是不行的,可以使用GetShortPathName來彌補這個缺陷。例:
TCHAR shortName[MAX_PATH];
GetShortPathName(“d:\\中文文件夾名\\abc
3、\\bb cc\\音樂.mp3”,shortName,sizeof(shortName));
TCHAR str[MAX_PATH+10];
wsprintf(str,”play %s”,shortName);把str替換下面“play 音樂全路徑名”即可。
mciSendString(“play 音樂全路徑名”,"",0,NULL);
mciSendString更多用法(暫停、繼續(xù)、錄音、播放進度控制)參考
wsprintf(cmd,"play %s",shortpath);
mciSendString(cmd,"",0,NULL);//這個是實現(xiàn)播放音樂功能的,先將p
4、lay 和shortpath組合到cmd中,然后再用mciSendString實現(xiàn)播放。。
wsprintf(listlen,"status %s length",shortpath);
mciSendString(listlen,szLength,sizeof(szLength)/sizeof(TCHAR),NULL);//szLength里面得到的就是音樂的長度。。但位是毫秒。
int longtime=atoi(szLength);//將得到的毫秒轉(zhuǎn)化成整數(shù)
TCHAR time[100];
wsprintf(time,"%i:%i",int(longtime/1000/60)
5、,int(longtime/1000%60));//將毫秒轉(zhuǎn)化成分:秒形式,此時time里面存放的就是以分:秒形式顯示的數(shù)據(jù)
wsprintf(szVolume,"setaudio %s volume to %d",shortpath,volume);
mciSendString(szVolume,IVolume,0,NULL);//這個是求音樂聲音的。。
wsprintf(stopplay,"close %s",shortpath);
mciSendString(stopplay,"",0,NULL);//這個就是實現(xiàn)結(jié)束音樂的。。
wsprintf(stop,"pause %s"
6、,shortpath);
mciSendString(stop,"",0,NULL);//這個是暫停音樂播放的。
wsprintf(novoice,"setaudio %s off",shortpath);
mciSendString(novoice,"",0,NULL);//這個是實現(xiàn)靜音功能的。。
二、操作
1.打開項目,刪除無關(guān)的內(nèi)容。
2.插入一個列表框,三個命令按鈕。列表框的ID改為IDC_LIST,命令按鈕的ID分別成:IDC_PLAY,IDC_PAUSE,IDC_STOP.命令按鈕標(biāo)題分別改成PLAY,PAUSE,STOP。且PAUSE與STOP改成已禁用。
3.窗口界面效果如圖
4.現(xiàn)在要針對文件菜單的打開文件,列表框,三個命令按鈕編程,為了能夠播放音樂,要包含媒體相關(guān)的頭文件mmsystem.h和庫文件winmm.lib,除此之外還要定義程序當(dāng)中需要用到的各個變量。程序整個代碼如下: