這個函數(shù)是直接操作PC的喇叭,讓其以一定的頻率發(fā)出聲音

創(chuàng)新互聯(lián)是一家專業(yè)提供東寶企業(yè)網站建設,專注與做網站、網站制作、H5高端網站建設、小程序制作等業(yè)務。10年已為東寶眾多企業(yè)、政府機構等服務。創(chuàng)新互聯(lián)專業(yè)網站制作公司優(yōu)惠進行中。
參數(shù)為頻率,可以這樣用 sound(100);
改變參數(shù)大小可以發(fā)出不同的音
C語言中的這個函數(shù)是不能用來播放指定的音頻文件的,如果需要,可以調用系統(tǒng)API函數(shù)。
可以使用PlaySound()函數(shù)播放wav聲音,該函數(shù)原型位于windows.h中,
函數(shù)原型為:
BOOL PlaySound(LPCSTR pszSound, HMODULE hmod,DWORD fdwSound);
參數(shù)pszSound是指定了要播放聲音的字符串,該參數(shù)可以是WAVE文件的名字,或是WAV資源的名字,或是內存中聲音數(shù)據(jù)的指針,或是在系統(tǒng)注冊表WIN.INI中定義的系統(tǒng)事件聲音。如果該參數(shù)為NULL則停止正在播放的聲音。
參數(shù)hmod是應用程序的實例句柄,當播放WAV資源時要用到該參數(shù),否則它必須為NULL。
參數(shù)fdwSound是標志的組合,各種可選的標志及意義如下所示。若成功則函數(shù)返回TRUE,否則返回FALSE。
播放標志以及含義:
SND_APPLICATION
用應用程序指定的關聯(lián)來播放聲音。
SND_ALIAS
pszSound參數(shù)指定了注冊表或WIN.INI中的系統(tǒng)事件的別名。
SND_ALIAS_ID
pszSound參數(shù)指定了預定義的聲音標識符。
SND_ASYNC
用異步方式播放聲音,PlaySound函數(shù)在開始播放后立即返回。
SND_FILENAME
pszSound參數(shù)指定了WAVE文件名。
SND_LOOP
重復播放聲音,必須與SND_ASYNC標志一塊使用。
SND_MEMORY
播放載入到內存中的聲音,此時pszSound是指向聲音數(shù)據(jù)的指針。
SND_NODEFAULT
不播放缺省聲音,若無此標志,則PlaySound在沒找到聲音時會播放缺省聲音。
SND_NOSTOP
PlaySound不打斷原來的聲音播出并立即返回FALSE。
SND_NOWAIT
如果驅動程序正忙則函數(shù)就不播放聲音并立即返回。
SND_PURGE
停止所有與調用任務有關的聲音。若參數(shù)pszSound為NULL,就停止所有的聲音,否則,停止pszSound指定的聲音。
SND_RESOURCE
pszSound參數(shù)是WAVE資源的標識符,這時要用到hmod參數(shù)。
SND_SYNC
同步播放聲音,在播放完后PlaySound函數(shù)才返回。
************************************************************
例如我想播放在C:\WINDOWS\Media目錄中的 Windows XP 啟動.wav 文件
程序如下:
#include windows.h
#include stdlib.h
int main(int argc, char* argv[])
{
PlaySound("C:\\WINDOWS\\Media\\Windows XP 啟動.wav", NULL, SND_FILENAME | SND_ASYNC);
system("pause");
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();? ? ? ? ? ? //歡迎界面上的標題
flower();? ? ? ? ? ?//打印字符畫
welcome();? ? ? ? ? //歡迎界面上的選項菜單
}
擴展資料
C語言解析WAV音頻文件:
C語言基本的二進制文件操作函數(shù)有fopen,fread等等。(注意是二進制文件操作函數(shù),所以我們不討論fgets,這是普通的文本文件操作函數(shù))
fread是一個函數(shù)。從一個文件流中讀數(shù)據(jù),最多讀取count個項,每個項size個字節(jié),如果調用成功返回實際讀取到的項個數(shù)(小于或等于count),如果不成功或讀到文件末尾返回 0。
它的函數(shù)原型為
size_t fread ( void *buffer, size_t size, size_t count, FILE *stream) ;
而且C語言還有一種類型叫做結構體,它在內存中是順序存儲的。剛好我們也已經得知了WAV文件在文件中的順序以及該順序中每個部分對應的含義。
那么我們可以事先根據(jù)前面所說的WAV文件結構來定義好一個struct,然后在main主函數(shù)中初始化這個struct,并且通過fread的第一個參數(shù)帶入初始化好的這個struct,那么執(zhí)行之后就會自動讀取該文件,并且按照順序自動把這些元數(shù)據(jù)填充進了我們初始化好的struct中。
可以使用PlaySound()函數(shù)播放聲音文件,
該函數(shù)原型位于#include mmsystem.h中,
因此要使用PlaySound,首先需要添加對這個頭文件的引用。
提示:mm就是MultiMedia的簡寫,多媒體
【1、函數(shù)使用說明】
函數(shù)原型為: BOOL PlaySound(LPCSTR pszSound, HMODULE hmod,DWORD fdwSound);
返回值表示是否播放成功。
參數(shù)pszSound是要播放聲音的文件名,
只支持WAV等格式的文件(應該不能播放MP3格式文件);
你可以去mp3.baidu.com用“wav”為關鍵詞可以搜到很多wav音樂,
也可以用工具將其他格式的轉換為wav格式的。
參數(shù)hmod是應用程序的實例句柄,一般傳遞NULL就可以;
參數(shù)fdwSound是標志的組合掩碼,
可選值有SND_FILENAME、SND_ASYNC、SND_SYNC等。
SND_FILENAME表示pszSound參數(shù)指定的是文件名(pszSound還可以指定資源、內存音樂、系統(tǒng)音樂等等);
SND_ASYNC:用異步方式播放聲音,PlaySound函數(shù)在開始播放后立即返回;
SND_SYNC:同步播放聲音,在播放完后PlaySound函數(shù)才返回;
SND_LOOP一遍遍的重復播放聲音,必須與SND_ASYNC標志一塊使用。
【2、使用舉例】
PlaySound(TEXT("C:\\WINDOWS\\Media\\Windows XP 啟
動.wav"),NULL,SND_FILENAME|SND_SYNC);
注意的問題:文件名中的反斜線要用“\\”,
因為C語言中“\”默認是轉義符,
如果要表示“\”則需要使用“\\”,
對這點不明白的請回去翻一下C語言的書;
對中文字符串要使用TEXT宏。
兩個聲音函數(shù)sound(),nosound()和延遲函數(shù)delay()由函數(shù)庫
提供。
函數(shù)名:
sound
功
能:
以指定頻率打開PC揚聲器
用
法:
void
sound(unsigned
frequency);
程序例:
#include
int
main(void)
{
sound(7);
delay(10000);
nosound();
return
0;
}
本文題目:c語言程序內鈴聲播放函數(shù),c語言程序內鈴聲播放函數(shù)是什么
分享網址:http://chinadenli.net/article29/dsioech.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供網頁設計公司、網站維護、手機網站建設、動態(tài)網站、網站制作、App設計
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)