2011-01-19 142 views
7

設計任何筆記本電腦的遊戲:同時播放2個聲音

我想同時播放2個聲音!按下按鈕時會出現背景音樂和聲音!使用System.Media不允許我一起播放2個聲音。對於背景音樂,我用了以下內容:

SoundPlayer sp = new SoundPlayer(@"..\..\bin\debug\tribal dance.wav"); 
sp.Play; 

如果我打另一個SoundPlayer,前一站!

我想要背景音樂繼續播放,直到表單被關閉!同時,如果點擊一個按鈕,音樂將播放另一個聲音!

我也嘗試添加Windows媒體播放器到工具箱,並使用它(讓我2播放2聲音在同一時間)。這工作正常,但路徑會給出一個錯誤,如果我把它(@""..\..\bin\debug\tribal dance.wav"); ,我需要把它這樣才能被任何計算機讀取。

有什麼建議嗎?

+0

可能的重複[播放wav文件異步多次與.net](http://stackoverflow.com/questions/4429513/play-wav-file-async-multiple-times-with-net) – 2011-01-19 20:45:49

回答

6

你不能一次用聲音播放演奏兩個音色絕對路徑。

SoundPlayer正在使用原生WINAPI PlaySound函數來完成不支持播放同步聲音的任務。創建SoundPlayer的多個實例將無濟於事。

有很多選擇,其中大部分涉及實施了很多低級別的API來窗口的本地音頻libraryDirectSound(注也不是C#,需要很多的互操作代碼)

最簡單的辦法是依靠在Windows Media Player上爲您播放音頻。

增加提及 「C:\ WINDOWS \ SYSTEM32 \的Wmp.dll」

然後用

var player = new WMPLib.WindowsMediaPlayer(); 
player.URL = @"..\..\bin\debug\tribal dance.wav"; 

注:播放設置URL屬性

的一面後立即開始這種方法是您的媒體播放器爲您的應用程序正常工作的依賴。有利的是,您可以使用任何文件格式的媒體播放器支持。