這個(gè)唱 多來米法少
創(chuàng)新互聯(lián)建站堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站制作、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的文成網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
#include stdio.h
#include stdlib.h
#include windows.h
main()
{
Beep(523,500);
Beep(587,500);
Beep(659,500);
Beep(698,500);
Beep(784,500);
Beep(880,500);
Beep(980,500);
Beep(1060,500);
Sleep(500);
Beep(523,500);
Beep(587,500);
Beep(659,500);
Beep(698,500);
Beep(784,500);
}
可以使用PlaySound()函數(shù)播放聲音文件,
該函數(shù)原型位于#include mmsystem.h中,
因此要使用PlaySound,首先需要添加對這個(gè)頭文件的引用。
提示:mm就是MultiMedia的簡寫,多媒體
【1、函數(shù)使用說明】
函數(shù)原型為: BOOL PlaySound(LPCSTR pszSound, HMODULE hmod,DWORD fdwSound);
返回值表示是否播放成功。
參數(shù)pszSound是要播放聲音的文件名,
只支持WAV等格式的文件(應(yīng)該不能播放MP3格式文件);
你可以去mp3.baidu.com用“wav”為關(guān)鍵詞可以搜到很多wav音樂,
也可以用工具將其他格式的轉(zhuǎn)換為wav格式的。
參數(shù)hmod是應(yīng)用程序的實(shí)例句柄,一般傳遞NULL就可以;
參數(shù)fdwSound是標(biāo)志的組合掩碼,
可選值有SND_FILENAME、SND_ASYNC、SND_SYNC等。
SND_FILENAME表示pszSound參數(shù)指定的是文件名(pszSound還可以指定資源、內(nèi)存音樂、系統(tǒng)音樂等等);
SND_ASYNC:用異步方式播放聲音,PlaySound函數(shù)在開始播放后立即返回;
SND_SYNC:同步播放聲音,在播放完后PlaySound函數(shù)才返回;
SND_LOOP一遍遍的重復(fù)播放聲音,必須與SND_ASYNC標(biāo)志一塊使用。
【2、使用舉例】
PlaySound(TEXT("C:\\WINDOWS\\Media\\Windows XP 啟
動(dòng).wav"),NULL,SND_FILENAME|SND_SYNC);
注意的問題:文件名中的反斜線要用“\\”,
因?yàn)镃語言中“\”默認(rèn)是轉(zhuǎn)義符,
如果要表示“\”則需要使用“\\”,
對這點(diǎn)不明白的請回去翻一下C語言的書;
對中文字符串要使用TEXT宏。
函數(shù)void sound(unsigned frequency);
以指定頻率打開PC揚(yáng)聲器
nosound :關(guān)閉PC揚(yáng)聲器
原型為: void nosound(void);
delay 用于將程序的執(zhí)行暫停一段時(shí)間(毫秒)
原型為:void delay(unsigned milliseconds);
如delay(5000)表示延遲5秒
sound()函數(shù)用于讓pc喇叭發(fā)聲,nosound()函數(shù)用于使正在發(fā)聲的pc喇叭靜音。要使程序中的發(fā)聲的具體方法,是調(diào)用sound()函數(shù)并延遲一定時(shí)間,然后使用nosound()函數(shù)靜音,具體語句實(shí)現(xiàn)方法舉例如下:
sound(100);
delay(100);
nosound();
它們?nèi)齻€(gè)都在“dos.h”里面,
至于d(x,y,z)應(yīng)該是程序員自己定義的函數(shù),我沒見過。
這個(gè)函數(shù)是直接操作pc的喇叭,讓其以一定的頻率發(fā)出聲音
參數(shù)為頻率,可以這樣用
sound(100);
改變參數(shù)大小可以發(fā)出不同的音
c語言中的這個(gè)函數(shù)是不能用來播放指定的音頻文件的,如果需要,可以調(diào)用系統(tǒng)api函數(shù)。
TC 試:
#includedos.h
#includeconio.h
#includestdlib.h
/* this founction plays sound until hit any key */
void mysound()
{
long freq ;
while(!kbhit()){/* while no keyboard hit, play sound */
for(freq=200L;freq2000L;freq+=200L){
sound(freq);/*play freq sound*/
delay(200);/*delay 200ms*/
}
}
nosound();/* stop playing */
}
void main()
{
mysound() ;
}
---------------
VC++ 試:
#include stdio.h
#include stdlib.h
#include windows.h
main()
{
Beep(523,500);
Beep(587,500);
Beep(659,500);
Beep(698,500);
Beep(784,500);
Sleep(500);
Beep(523,500);
Beep(587,500);
Beep(659,500);
Beep(698,500);
Beep(784,500);
}
------
wintc 試驗(yàn)上兩個(gè)。
一.在程序中直接播放聲音文件
在VC++ 中的多媒體動(dòng)態(tài)連接庫中提供了一組與音頻設(shè)備有關(guān)的函數(shù)。利用這些函數(shù)可以方便地播放聲音。最簡單的播放聲音方法就是直接調(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ì)說明請參考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)的資源,如位圖,菜單,對話框等。同時(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);