#include reg52.h

10年積累的網(wǎng)站制作、成都網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有陽(yáng)江免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
#define uchar unsigned char
#define uint unsigned int
sbit BEEP = P3^7;
uchar code SONG_TONE[]=
{
212,212,190,212,159,169,212,212,190,212,142,159,212,212,106,126,129,169,190,119,119,126,159,142,159,0
};
uchar code SONG_LONG[]=
{
9,3,12,12,12,24,9,3,12,12,12,24,9,3,12,12,12,12,12,9,3,12,12,12,24,0
};
void DelayMS(uint ms)
{
uchar t;
while(ms--)
{
for(t=0;t120;t++);
}
}
void PlayMusic()
{
uint i =0,j,k;
while(SONG_LONG[i]!=0||SONG_TONE[i]!=0)
{
for(j=0;jSONG_LONG[i]*20;j++)
{
BEEP = ~BEEP;
for(k=0;kSONG_TONE[i]/3;k++);
}
DelayMS(10);
i++;
}
}
void main()
{
while(1)
{
PlayMusic();
DelayMS(500);
}
}
這個(gè)是單片機(jī)的。
一.在程序中直接播放聲音文件
在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ì)說明請(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***文件的聲音播放。要實(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);
兩個(gè)聲音函數(shù)sound(),nosound()和延遲函數(shù)delay()由函數(shù)庫(kù)
提供。
函數(shù)名:
sound
功
能:
以指定頻率打開PC揚(yáng)聲器
用
法:
void
sound(unsigned
frequency);
程序例:
#include
int
main(void)
{
sound(7);
delay(10000);
nosound();
return
0;
}
代碼如下:
#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ù)前面所說的WAV文件結(jié)構(gòu)來定義好一個(gè)struct,然后在main主函數(shù)中初始化這個(gè)struct,并且通過fread的第一個(gè)參數(shù)帶入初始化好的這個(gè)struct,那么執(zhí)行之后就會(huì)自動(dòng)讀取該文件,并且按照順序自動(dòng)把這些元數(shù)據(jù)填充進(jìn)了我們初始化好的struct中。
可以使用PlaySound()函數(shù)播放mp3音頻,該函數(shù)原型位于windows.h。
PlaySound函數(shù)的聲明為:
BOOL PlaySound(LPCSTR pszSound, HMODULE hwnd,DWORD fdwSound);
參數(shù)pszSound是指定了要播放聲音的字符串。
參數(shù)hwnd是應(yīng)用程序的實(shí)例句柄,除非pszSound的指向一個(gè)資源標(biāo)識(shí)符(即fdwSound被定義為SND_RESOURCE),否則必須設(shè)置為NULL。
參數(shù)fdwSound是標(biāo)志的組合,如下表所示。若成功則函數(shù)返回TRUE,否則返回FALSE。
使用PlaySound函數(shù)時(shí)需要在#includewindows.h后面加上(注意:不能加在前面):
例程:
CFileDialog?dlg(TRUE,?"mp3",?"*.mp3",?OFN_HIDEREADONLY|OFN_ALLOWMULTISELECT,?"mp3文件(*.mp3)|*.mp3|");
/*創(chuàng)建選擇對(duì)話框,讓用戶從文件夾中選取一個(gè)MP3文件*/
int?iRet?=?dlg.DoModal();//獲得對(duì)話框返回值
if(IDOK?==?iRet)?//如果返回值成功,表明成功獲取一個(gè)MP3文件
{
CString?pathName=?dlg.GetPathName();????//得到文件的路徑名稱
PlaySound(?pathName???,?NULL,?SND_FILENAME?|?SND_ASYNC);//用playsound函數(shù)播放該文件
}
網(wǎng)頁(yè)標(biāo)題:c語(yǔ)言對(duì)一段音頻處理函數(shù),c語(yǔ)言調(diào)用音頻文件
當(dāng)前鏈接:http://chinadenli.net/article31/dsghdpd.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、網(wǎng)站維護(hù)、商城網(wǎng)站、App開發(fā)、定制網(wǎng)站、Google
聲明:本網(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í)需注明來源: 創(chuàng)新互聯(lián)