2012-09-27 73 views
0

我的項目是構建一個簡單的遊戲,現在我只用5個按鈕製作主菜單Form1。這些按鈕上有MouseClickMouseEnter,我有一個使用WMP方法(使用WMPLib和axWMPLib)的背景音樂曲目。WMP聲音無法在其他電腦上工作

我的問題是,當我將bin/debug放在rar文件上,並將其提供給我的朋友時,他們說他們聽不到聲音。我通過WMP版本11完成了項目,所以我問他們他們的WMP版本是否是11,他們說是。我不知道爲什麼我會聽到我電腦上的聲音,但他們不知道。

我試着給他們的文件夾:

  • bin\Release
  • bin\Debug
  • x86\Release
  • x86\Debug

,但他們仍表示,他們無法聽到任何聲音他們全部。

編輯

我所有的聲音是一個名爲 「聲音」 文件夾中。我發現了一些細節,發現你需要將這些WMP聲音嵌入到「資源」中。

那麼我該怎麼做,以及我在Form1載入時如何打電話給他們。不,這下面的代碼不起作用:

BackGround.URL = Properties.Resources.Invincible; 

它說我不能轉換System.IO.UnmanagedMemoryStreamString

+0

你所有的音樂文件存儲在哪裏?他們是否在調試/發佈文件夾中? – DanM7

+0

請向我們展示加載音樂文件的代碼。 –

+2

@ user1703020,在StackOverflow上,問題下方的空間僅供解答,因此如果您有其他信息需要添加,則應該編輯問題以添加它。我已經標記了下面的答案以供刪除,但我相信您應該可以刪除它並將其自動添加到帖子中。 – dsolimano

回答

1

此致敬禮我不建議您使用WMP,所以看看SoundPlayer類。 但是我認爲問題在於你沒有給你的文件提供正確的位置。所以你可以做的是在應用程序文件夾中找到你的文件,找到它的位置並創建音樂文件的位置。

所以嘗試:

string musicName = Application.StartupPath + "music.mp3"; 

或者,如果你有一個在應用程序路徑中使用聲音文件夾:

string musicName = Application.StartupPath + "\\Sounds\\music.mp3"; 

不然,如果你插入你的音樂文件中的應用程序資源這樣的:

BackGround.URL = Properties.Resources.Invincible; 

沒有工作,因爲BackGround.URL是字符串類型,而Properties.Resources.Invincible是音樂文件流。

我不知道是否使用WMP您可以設置它可以播放文件的位置。儘管之前鏈接的SoundPlayer類別包含您可以在其中設置輸入流的屬性。你可以這樣做:

SoundPlayer mySoundPlayer = new SoundPlayer(); 
mySoundPlayer.Stream = Properties.Resources.Invincible; 
mySoundPlayer.Load(); 
mySounPlayer.Play(); //plays the Properties.Resources.Invincible sound 
+1

'+ 1'爲廣泛的答案,不錯的工作! – Anne

相關問題