兩個聲音函數(shù)sound(),nosound()和延遲函數(shù)delay()由函數(shù)庫
創(chuàng)新互聯(lián)專注于峨邊彝族網(wǎng)站建設服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供峨邊彝族營銷型網(wǎng)站建設,峨邊彝族網(wǎng)站制作、峨邊彝族網(wǎng)頁設計、峨邊彝族網(wǎng)站官網(wǎng)定制、微信平臺小程序開發(fā)服務,打造峨邊彝族網(wǎng)絡公司原創(chuàng)品牌,更為您提供峨邊彝族網(wǎng)站排名全網(wǎng)營銷落地服務。
提供。
函數(shù)名:
sound
功
能:
以指定頻率打開PC揚聲器
用
法:
void
sound(unsigned
frequency);
程序例:
#include
int
main(void)
{
sound(7);
delay(10000);
nosound();
return
0;
}
可以使用PlaySound()函數(shù)播放mp3聲音,該函數(shù)原型位于windows.h中,
函數(shù)原型為:
BOOL PlaySound(LPCSTR pszSound, HMODULE hmod,DWORD fdwSound);
參數(shù)pszSound是指定了要播放聲音的字符串,該參數(shù)可以是MP3文件的名字,或是MP3資源的名字,或是內(nèi)存中聲音數(shù)據(jù)的指針,或是在系統(tǒng)注冊表WIN.INI中定義的系統(tǒng)事件聲音。如果該參數(shù)為NULL則停止正在播放的聲音。
參數(shù)hmod是應用程序的實例句柄,當播放MP3資源時要用到該參數(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ù)指定了MP3文件名。
SND_LOOP
重復播放聲音,必須與SND_ASYNC標志一塊使用。
SND_MEMORY
播放載入到內(nèi)存中的聲音,此時pszSound是指向聲音數(shù)據(jù)的指針。
SND_NODEFAULT
不播放缺省聲音,若無此標志,則PlaySound在沒找到聲音時會播放缺省聲音。
SND_NOSTOP
PlaySound不打斷原來的聲音播出并立即返回FALSE。
SND_NOWAIT
如果驅(qū)動程序正忙則函數(shù)就不播放聲音并立即返回。
SND_PURGE
停止所有與調(diào)用任務有關的聲音。若參數(shù)pszSound為NULL,就停止所有的聲音,否則,停止pszSound指定的聲音。
SND_RESOURCE
pszSound參數(shù)是WAVE資源的標識符,這時要用到hmod參數(shù)。
SND_SYNC
同步播放聲音,在播放完后PlaySound函數(shù)才返回。
************************************************************
例如我想播放在C:\WINDOWS\Media目錄中的 Windows XP 啟動.MP3文件
程序如下:
#include windows.h
#include stdlib.h
int main(int argc, char* argv[])
{
PlaySound("C:\\WINDOWS\\Media\\Windows XP 啟動.MP3", NULL, SND_FILENAME | SND_ASYNC);
system("pause");
return 0;
}
*/:)))))))))))))))))))))))))))))))
函數(shù):
voiddelay(uinti)
{
while(i)i--;
}
這樣的延遲設計很不好,因為受影響的因素太多。
首先就是機器的CPU頻率,快的CPU執(zhí)行i--這句的機器時間短,慢的機器就很慢。
其次是當前機器的負荷情況,負荷較重時,系統(tǒng)給當前進程分配的CPU時間少,執(zhí)行這些語句的機會就少,延遲就增加了。
影響因素還有很多在此不再列舉。
做延遲程序主要有以下幾種方法:
1.定時器法
用CWnd::SetTimer()函數(shù)設置定時器,當定時時間到時發(fā)送WM_TIMER消息觸發(fā)CWnd::OnTimer()函數(shù),重載它把自己的代碼放進去。
SetTimer()參數(shù)為毫秒,此方法定時不高,受系統(tǒng)負荷影響。
2.休眠法
調(diào)用系統(tǒng)API函數(shù)Sleep(2000);參數(shù)單位是毫秒,2000代表2秒。
此方法主要收到當前系統(tǒng)負荷的影響,定時不太準確
3.時刻比較法
定義兩個CTime變量,一個用于記錄起始時刻,另一個放在循環(huán)體中不斷刷新當前時刻,并減去起始時刻,自己計算是否到時間了。
此方法因CTime變量只能獲取秒級的時刻,且收到系統(tǒng)負荷影響,精度也較低。
4.CPU滴答查詢法
利用兩個API函數(shù)QueryPerformanceFrequency()和QueryPerformanceCounter()分別獲取CPU的頻率和CPU滴答數(shù),依時刻比較法自己計算時刻差值。
因為CPU滴答數(shù)是等于CPU的機器周期的,所以是Windows系統(tǒng)里最最精確的計時方法了?,F(xiàn)在的CPU主頻都是GHz級的,因此理論上計時精度可以到納秒。
只要系統(tǒng)負荷不太重,此法可用于極其精確的延時程序。
因為Windows并不是實時操作系統(tǒng),因此對于太過精確的計時,還是無能為力的。
網(wǎng)站名稱:c語言sound函數(shù) c語音函數(shù)怎么用
路徑分享:http://vcdvsql.cn/article40/ddijjho.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、網(wǎng)站設計、網(wǎng)站內(nèi)鏈、響應式網(wǎng)站、全網(wǎng)營銷推廣、面包屑導航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)