2014-01-28 45 views
0

我創建了一個.wav文件,其中包含完整的正弦波。您可以使用Audacity或類似工具打開它進行驗證。C#SoundPlayer在結束前停止播放wav文件

https://mega.co.nz/#!DkR3gKia!dV9zDtdzmqHDDkEUeZviYf78SDkkxWVjUTy8kYEJnio

我想玩使用C#.NET聲音播放此文件。喜歡這裏:

static void Main(string[] args) 
    { 
     using (SoundPlayer sad = new SoundPlayer("D:\\Soundlocator\\test.wav")) 
     { 
      while (true) 
      { 
       sad.PlaySync(); 
       Thread.Sleep(100); 
      } 
     } 
    } 

我可以從示波器看不到正弦波的一半。

enter image description here

誰能告訴我爲什麼? 也許我的wav文件標題不正確?使用vlc或Audacity播放相同的文件會按預期給出完整的正弦波。

+0

你有沒有試過在該wav文件的Windows媒體播放器上播放,看看是否沒有損壞? –

+1

這很奇怪。你可以嘗試使用PlayLooping而不是PlaySync方法,也許可以擺脫while(true)循環? – rla4

+0

我嘗試過與其他玩家。它正在工作,因爲它應該。只有SoundPlayer會產生問題。 PlayLooping完成這項工作,但我想在播放wav文件之間添加一段暫停,因此無法工作。任何想法如何可能?我找不到問題。 – user2799180

回答

0

我仍然不知道問題來自哪裏。我所做的解決這個問題的方法是在文件末尾添加一些暫停(0)。現在看起來應該如此。與PlayLooping相結合,它不完全是它應該的。

雖然SoundPlayer在這個WAV上無法正常工作的問題仍然存在。