代碼如下:
公司主營(yíng)業(yè)務(wù):成都做網(wǎng)站、網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。創(chuàng)新互聯(lián)推出大理州免費(fèi)做網(wǎng)站回饋大家。
#include windows.h
#include mmsystem.h
#pragma comment(lib, "WINMM.LIB")
/*播放音樂*/
void playMusic()
{
//aiyo.wav是放在代碼文件中
PlaySound(TEXT("aiyo.wav"),0,SND_FILENAME | SND_ASYNC);
}
/**
* 主? 函? 數(shù)(音樂放第一排)
*/
void main()
{
playMusic();
title();? ? ? ? ? ? //歡迎界面上的標(biāo)題
flower();? ? ? ? ? ?//打印字符畫
welcome();? ? ? ? ? //歡迎界面上的選項(xiàng)菜單
}
擴(kuò)展資料
C語(yǔ)言解析WAV音頻文件:
C語(yǔ)言基本的二進(jìn)制文件操作函數(shù)有fopen,fread等等。(注意是二進(jìn)制文件操作函數(shù),所以我們不討論fgets,這是普通的文本文件操作函數(shù))
fread是一個(gè)函數(shù)。從一個(gè)文件流中讀數(shù)據(jù),最多讀取count個(gè)項(xiàng),每個(gè)項(xiàng)size個(gè)字節(jié),如果調(diào)用成功返回實(shí)際讀取到的項(xiàng)個(gè)數(shù)(小于或等于count),如果不成功或讀到文件末尾返回 0。
它的函數(shù)原型為
size_t fread ( void *buffer, size_t size, size_t count, FILE *stream) ;
而且C語(yǔ)言還有一種類型叫做結(jié)構(gòu)體,它在內(nèi)存中是順序存儲(chǔ)的。剛好我們也已經(jīng)得知了WAV文件在文件中的順序以及該順序中每個(gè)部分對(duì)應(yīng)的含義。
那么我們可以事先根據(jù)前面所說(shuō)的WAV文件結(jié)構(gòu)來(lái)定義好一個(gè)struct,然后在main主函數(shù)中初始化這個(gè)struct,并且通過fread的第一個(gè)參數(shù)帶入初始化好的這個(gè)struct,那么執(zhí)行之后就會(huì)自動(dòng)讀取該文件,并且按照順序自動(dòng)把這些元數(shù)據(jù)填充進(jìn)了我們初始化好的struct中。
一.在程序中直接播放聲音文件
在VC++ 中的多媒體動(dòng)態(tài)連接庫(kù)中提供了一組與音頻設(shè)備有關(guān)的函數(shù)。利用這些函數(shù)可以方便地播放聲音。最簡(jiǎn)單的播放聲音方法就是直接調(diào)用VC++中提供的聲音播放函數(shù)BOOL sndPlaySound ( LPCSTR lpszSound,UINT fuSound ); 或BOOL PlaySound( LPCSTR lpszSound, HMODULE hmod, DWORD fuSound );其中參數(shù)lpszSound是需要播放聲音的.W***文件的路徑和文件名, hmod在這里為NULL,fuSound是播放聲音的標(biāo)志,詳細(xì)說(shuō)明請(qǐng)參考VC++中的幫助。 例如播放C:soundmusic.wav可以用sndPlaySound ("c:\sound\music.wav",SND_ASYNC);或PlaySound("c:\sound\music.wav",NULL, SND_ASYNC|SND_NODEFAULT );如果沒有找到music.wav文件,第一種格式將播放系統(tǒng)默認(rèn)的聲音,第二種格式不會(huì)播放系統(tǒng)默認(rèn)的聲音。
二.將聲音文件加入到程序中
在VC++的程序設(shè)計(jì)中,可以利用各種標(biāo)準(zhǔn)的資源,如位圖,菜單,對(duì)話框等。同時(shí)VC++也允許用戶自定義資源,因此我們可以將聲音文件作為用戶自定義資源加入程序資源文件中,經(jīng)過編譯連接生成EXE文件,實(shí)現(xiàn)無(wú).W***文件的聲音播放。要實(shí)現(xiàn)作為資源的聲音文件的播放,首先要在資源管理器中加入待播放的聲音文件。
具體步驟入下:
1.獲得包含資源的模塊句柄:
HMODULE hmod=AfxGetResourceHandle();
2.檢索資源塊信息:
HRSRC hSndResource=FindResource(hmod,MAKEINTRESOURCE(IDR_W***E1),_T("W***E"));
3. 裝載資源數(shù)據(jù)并加鎖:
HGLOBAL hGlobalMem=LoadResource(hmod,hSndResource);
LPCTSTR lpMemSound=(LPCSTR)LockResource(hGlobalMem);
4.播放聲音文件:
sndPlaySound(lpMemSound,SND_MEMORY));
5.釋放資源句柄:
FreeResource(hGlobalMem);
調(diào)用DOS命令,讓 Windows Media Player 幫你播放
下面播放 "zzd.wav"
你若有別的格式文件,Windows Media Player 能識(shí)別的都可以播放。
#include stdio.h
void play_wav(char *s){
char cm[100];
sprintf(cm,"mplay32.exe /play %s",s);
system(cm);
}
main()
{
char s[100]="zzd.wav";
play_wav(s);
getchar();
return 0;
}
用C語(yǔ)言播放音樂,一般需要額外的庫(kù)或者調(diào)用系統(tǒng)的API函數(shù)。
以Windows為例,可以通過PlaySound函數(shù)播放wav格式的音樂。示例如下:
#includestdio.h
#includewindows.h
#includemmsystem.h
#pragma?comment(lib,?"WINMM.LIB")
int?main()
{
PlaySound(TEXT("1.wav"),0,SND_FILENAME);?//1.wav是要播放的音樂文件
return?0;
}
如果想播放mp3音樂可以使用如下代碼。
注意:生成程序后,請(qǐng)?jiān)赾md中執(zhí)行此程序,不要在vc/vs的IDE中運(yùn)行。
#include?windows.h
#include?mmsystem.h
#include?stdio.h
#pragma?comment(lib,?"Winmm.lib")
int?main(int?argc,?char?*argv[])
{
//絕對(duì)地址形式
TCHAR?fileName[]="ganlusi.mp3";
TCHAR?shortName[MAX_PATH];
GetShortPathName(fileName,shortName,sizeof(shortName)/sizeof(TCHAR));
TCHAR?cmd[MAX_PATH+10];
wsprintf(cmd,"play?%s",shortName);
mciSendString(cmd,NULL,?0,?NULL);
Sleep(5?*?60?*?1000);?//這里是防止一播放就結(jié)束做的延遲
return?0;
}
本文名稱:c語(yǔ)言中播放音樂文件函數(shù) c語(yǔ)言播放音樂的代碼
文章來(lái)源:http://m.newbst.com/article20/dosjico.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁(yè)設(shè)計(jì)公司、全網(wǎng)營(yíng)銷推廣、商城網(wǎng)站、微信小程序、移動(dòng)網(wǎng)站建設(shè)、營(yíng)銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)