c語言sound函數(shù) c語音函數(shù)怎么用

c語言調(diào)用聲音的函數(shù)?

兩個聲音函數(shù)sound(),nosound()和延遲函數(shù)delay()由函數(shù)庫

創(chuàng)新互聯(lián)專注于峨邊彝族網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供峨邊彝族營銷型網(wǎng)站建設(shè),峨邊彝族網(wǎng)站制作、峨邊彝族網(wǎng)頁設(shè)計、峨邊彝族網(wǎng)站官網(wǎng)定制、微信平臺小程序開發(fā)服務(wù),打造峨邊彝族網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供峨邊彝族網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

提供。

函數(shù)名:

sound

能:

以指定頻率打開PC揚聲器

法:

void

sound(unsigned

frequency);

程序例:

#include

int

main(void)

{

sound(7);

delay(10000);

nosound();

return

0;

}

c語言中如何播放mp3數(shù)據(jù)幀

可以使用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是應(yīng)用程序的實例句柄,當(dāng)播放MP3資源時要用到該參數(shù),否則它必須為NULL。

參數(shù)fdwSound是標志的組合,各種可選的標志及意義如下所示。若成功則函數(shù)返回TRUE,否則返回FALSE。

播放標志以及含義:

SND_APPLICATION

用應(yīng)用程序指定的關(guān)聯(lián)來播放聲音。

SND_ALIAS

pszSound參數(shù)指定了注冊表或WIN.INI中的系統(tǒng)事件的別名。

SND_ALIAS_ID

pszSound參數(shù)指定了預(yù)定義的聲音標識符。

SND_ASYNC

用異步方式播放聲音,PlaySound函數(shù)在開始播放后立即返回。

SND_FILENAME

pszSound參數(shù)指定了MP3文件名。

SND_LOOP

重復(fù)播放聲音,必須與SND_ASYNC標志一塊使用。

SND_MEMORY

播放載入到內(nèi)存中的聲音,此時pszSound是指向聲音數(shù)據(jù)的指針。

SND_NODEFAULT

不播放缺省聲音,若無此標志,則PlaySound在沒找到聲音時會播放缺省聲音。

SND_NOSTOP

PlaySound不打斷原來的聲音播出并立即返回FALSE。

SND_NOWAIT

如果驅(qū)動程序正忙則函數(shù)就不播放聲音并立即返回。

SND_PURGE

停止所有與調(diào)用任務(wù)有關(guān)的聲音。若參數(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;

}

*/:)))))))))))))))))))))))))))))))

C語言 關(guān)于sound();函數(shù)和delay();

函數(shù):

voiddelay(uinti)

{

while(i)i--;

}

這樣的延遲設(shè)計很不好,因為受影響的因素太多。

首先就是機器的CPU頻率,快的CPU執(zhí)行i--這句的機器時間短,慢的機器就很慢。

其次是當(dāng)前機器的負荷情況,負荷較重時,系統(tǒng)給當(dāng)前進程分配的CPU時間少,執(zhí)行這些語句的機會就少,延遲就增加了。

影響因素還有很多在此不再列舉。

做延遲程序主要有以下幾種方法:

1.定時器法

用CWnd::SetTimer()函數(shù)設(shè)置定時器,當(dāng)定時時間到時發(fā)送WM_TIMER消息觸發(fā)CWnd::OnTimer()函數(shù),重載它把自己的代碼放進去。

SetTimer()參數(shù)為毫秒,此方法定時不高,受系統(tǒng)負荷影響。

2.休眠法

調(diào)用系統(tǒng)API函數(shù)Sleep(2000);參數(shù)單位是毫秒,2000代表2秒。

此方法主要收到當(dāng)前系統(tǒng)負荷的影響,定時不太準確

3.時刻比較法

定義兩個CTime變量,一個用于記錄起始時刻,另一個放在循環(huán)體中不斷刷新當(dāng)前時刻,并減去起始時刻,自己計算是否到時間了。

此方法因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://www.muchs.cn/article40/ddijjho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、網(wǎng)站設(shè)計網(wǎng)站內(nèi)鏈、響應(yīng)式網(wǎng)站全網(wǎng)營銷推廣、面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)