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