DirectSound簡單的概述|DirectSound SDK文檔翻譯

來源:互聯網
上載者:User

DirectSound
開始使用DirectSound
這個部分將會介紹設定和調試DirectSound工程,還有播放聲音所需步驟的簡短概述。
1.編譯DirectSound工程
工程應當包含DSound.h標頭檔。如果DirectSound和DirectMusic一起用,還要包含Dmusici.h標頭檔。
如果想直接使用DirectSoundAPI,調用函數,應當確保串連到Dsound.lib,當然庫的地址也要設定好。
Dxguid.lib也要包含,因為要用到GUID。
2.調試DirectSound工程
Debug版本的DirectX SDK的動態連結程式庫在程式啟動並執行時候會產生調試資訊。
要想調試DirectSound就要下載包到下面的檔案夾中
.../Extras/DirectSound/debug/x86/Dsound.dll
or
.../Extras/DirectSound/debug/x64/Dsound.dll
.../Extras/Symbols/Debug/x86/dll/Dsound.pdb
or
.../Extras/Symbols/Debug/x64/dll/Dsound.pdb
用DirectX Properties控制台,選擇DirectSound,設定調試層級為Debug Output Level。
一般沒必要使層級高於2(0就是沒有調試資訊),層級高輸出就不會從屬於錯誤和警告,只會是一些“乾淨”的資訊。
3.調整DirectSound的加速
用控制台裡面的Sounds和Audio硬體頁可以調整DirectSound的效果。點擊Audio裡面的Sound Playback的Advanced按鈕。在Advanced Audio Properties框中選Performance,就可以用滑動條調節了。
Full 火力全開,包括IKsPropertySet 擴充
Standard 副緩衝可以使用,但IKsPropertySet 擴充的硬體部分沒辦法用,win2000以後都是預設的。
Basic 副緩衝也不能用,如果想類比不加速的音效卡來測試就用這個。
Emulation 強制DirectSound變成類比模式,類比系統上沒有DirectSound相容的驅動程式。
4.DirectSound編程第一步
簡要概述一下。大概有以下步驟:
(1)調用DirectSoundCreate8 產生一個支援IDirectSound8 的介面的對象。一般這個對象代表了了裝置。可以先枚舉裝置以獲得裝置的GUID,並通過這個ID傳給DirectSoundCreate8.
(2)產生副緩衝
用 IDirectSound8::CreateSoundBuffer 建立一個包含聲音資料的緩衝區對象(就叫副緩衝),這裡區別於主緩衝,混合了所有對象的聲音。
(3)PCM資料擷取
從WAV檔案中讀取資料到私人的緩衝區。SDK裡有範例程式碼。
(4)把資料放到緩衝區裡
調用IDirectSoundBuffer8::Lock鎖定副緩衝。一般返回一個記憶體位址。然後複製資料到私人資料緩衝區。最後調用IDirectSoundBuffer8::Unlock解鎖。
(5)播放緩衝區
調用IDirectSoundBuffer8::Play播放,調用IDirectSoundBuffer8::Stop停止。啟動和停止緩衝可以一直重複操作。但是只有一個聲音執行個體可以在同一時間播放,除非有別的緩衝區。多個緩衝區同時播放的話混合會自動完成。
前面5個步驟是最簡單的情況,短的聲音放到合理大小的緩衝區,正常情況下,持續幾秒的聲音是流,就是說播放過的聲音會被新的資料覆蓋掉。
SDK範例程式碼展示了如何使用DirectSound的共同任務。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.