線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1624
推到 Plurk!
推到 Facebook!

DirectSound 如何使用 ?

尚未結案
boson
中階會員


發表:74
回覆:155
積分:85
註冊:2004-07-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-09-28 23:24:49 IP:61.216.xxx.xxx 未訂閱
我想要在商用程式中加一個功能, 在使用者輸入資料時, 每按一個按鍵, 電腦就會發出一個很短的嗶聲 由於鍵盤輸入的速度可能很快, 因此播放的嗶聲也要能很快即時發出 我想, 如果用 MediaPlayer 元件來播, 效果一定不好 如果能用 DirectSound 來發出嗶聲, 是否就會比較順暢 ? 我沒接觸過 DirectX, 不知道該如何使用 ? 有哪些工具可用 ? 是否有人能提供一些簡單的範例 ? 我只要能發出簡單的嗶聲就可以了, 有人能幫忙寫一小段程式嗎 ? 謝謝 !
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-09-29 09:59:28 IP:61.222.xxx.xxx 未訂閱
我覺得您的需求,不需要用到 DirectX 利用 Playsound API 這個函數就可以了 uses mmsystem; playsound(pchar('c:\abc.wav'),0,SND_ASYNC); 參數 SND_ASYNC 作用在於,播放後不等聲音結束 便執行下一行程式。 若執意要使用DirectSound技術,可直接用DXsound,mmTools 元件。 或參考 Delphi Unleashed 4 深入淺出 有詳細的介紹及範例。
boson
中階會員


發表:74
回覆:155
積分:85
註冊:2004-07-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-09-29 11:54:05 IP:61.216.xxx.xxx 未訂閱
PlaySound 很好用, 基本上是可以達到我要的功能 可是, 使用時, 是傳遞 wav 檔名給它, 再由 PlaySound 來開啟 wav 檔案, 然後播放 如果程式在 user 每按一個按鍵時, 就播放一個小小的 wav 檔來發出嗶聲, 那麼 user 在大量輸入資料時, 程式就會不斷地開檔關檔, 這可能不大好 假設我已經把 wav 檔的內容, 讀到 FileStream 裏面 有沒有類似 PlaySound 的 API, 可以直接播放這個 Stream ? Thank you.
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-09-29 12:18:42 IP:61.222.xxx.xxx 未訂閱
可以使用載入資源(*.Rec)的方式。 SND_RESOURCE 這樣就不會有重複讀取聲音檔的問題
boson
中階會員


發表:74
回覆:155
積分:85
註冊:2004-07-31

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-09-29 12:27:09 IP:61.216.xxx.xxx 未訂閱
瞭解, 正是我要的答案 謝謝 !
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-09-29 12:32:01 IP:61.222.xxx.xxx 未訂閱
或者使用 Windows 內定的聲音 PlaySound('SYSTEMSTART', 0, SND_ASYNC); PlaySound('SYSTEMHAND', 0, SND_ASYNC); PlaySound('SYSTEMEXIT', 0, SND_ASYNC); PlaySound('SYSTEMQUESTION', 0, SND_ASYNC); PlaySound('SYSTEMEXCLAMATION', 0, SND_ASYNC); PlaySound('SYSTEMEWLCOME', 0, SND_ASYNC); PlaySound('SYSTEMDEFAULT', 0, SND_ASYNC);
系統時間:2024-04-29 11:54:08
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!