簡體   English   中英

播放“點擊”噪音

[英]Playback “clicking” noise

我正在嘗試編寫一個程序來在C ++中播放一個小的.wav文件。 我已按照DirectX SDK文檔對其進行編程,以便在輔助靜態緩沖區上編寫和播放。 它運行正常,除了在任何.wav文件的播放結束時,有一個非常明顯的“點擊”噪音。 我確信這不是我的音頻硬件的缺陷,因為我知道使用DirectSound的任何其他游戲都沒有它。

我已經嘗試在每個周期輪詢GetCurrentPosition並在它結束之前停止但是不可靠。 我不能在主緩沖區上播放它,因為.wav在主緩沖區上播放必須循環,這是我不想要的。

有人知道解決這個問題嗎? 提前致謝。

我們需要查看有問題的WAV文件和將WAV文件加載到聲音緩沖區的代碼。 但這是一些猜測。

我的第一個猜測是,如果我們要將WAV文件加載到視覺音頻編輯器中,我們會看到聲音突然結束,而不是逐漸變成沉默。 這會導致幾乎所有音頻播放器都出現“砰砰”的聲音。

我的第二個猜測是你最后將垃圾數據復制到聲音緩沖區。 某些WAV文件在DATA塊結尾之后的文件末尾有額外的元數據。 不知道你是如何確定聲音文件中的位置來復制樣本的,但是很容易搞砸了。 您是否使用十六進制編輯器(如Visual Studio)檢查WAV文件以確認DATA塊的長度是否與它聲稱的一樣大? 當您調試ReadFile調用以將數據從文件復制到緩沖區時,您是否檢查了緩沖區的最后幾個字節是否與您在十六進制編輯器中看到的相匹配?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM