2012-01-31 37 views
2

我試圖創建一個有聲音的圖書館,但我不能得到的URI來工作,如果我使用一個在線的URI像做出正確的URI WP遊戲庫

new Uri("http://www.archive.org/download/BrahmsViolinConcerto-Heifetz/03Iii.AllegroGiocosoMaNonTroppoVivace.mp3") 

它工作正常,所以問題是正確鏈接到我的文件夾在我的項目

我在我的WP遊戲圖書館的文件夾,我有\聲音\信件和文件夾中是一個名爲a.wma

我的方法加載聲音,這是

public void PlayLetter(string letter) 
    { 
     try 
     { 
      Initialize(); 
      FrameworkDispatcher.Update(); 
      var uri = new Uri(@"/Sounds/letters/" + letter + ".wma", UriKind.Relative); 
      var song = Song.FromUri("sound", uri); 
      MediaPlayer.Play(song); 
     } 
     catch(Exception e) 
     { 
      Console.WriteLine(e.ToString()); 
     } 
    } 

我當然給它字符串「a」作爲參數,當它失敗

我也包括在我的項目像

enter image description here

聲音文件我只是得到一個

Microsoft.Xna.Framework.dll中發生第一次機會例外類型'System.InvalidOperationException'

但它的URI的問題,我當我試着某些個網上的URI工作就好

另外我公司在兩件事情無疑是MediaPlayer的在遊戲中使用了正確的事情?並且可以在圖書館播放聲音(甚至包括他們)

+0

別人不同的是,你的網頁版是一個MP3。不知道這是否是問題,雖然... – 2012-01-31 20:50:41

+0

更改爲mp3沒有幫助:) – Mech0z 2012-01-31 20:57:39

+0

我可以肯定地說,圖書館可以播放聲音,並可以包含它們。不知道你的問題。 – 2012-01-31 23:53:15

回答

0

在XNA典型的事情是將使用SoundEffectInstance:

http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.audio.soundeffectinstance.aspx

不幸的是SoundEffectInstance僅適用於WAV文件。如果您想播放更長的音樂文件 - 您可以使用MediaElement - 但只允許一次播放單個壓縮音頻文件。另一種選擇可能是使用MediaPlayer類從MediaLibrary播放壓縮。您也可以將自己的壓縮音頻文件保存在MediaLibrary中,以便從那裏播放。請參閱:

http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.media.medialibrary.songs.aspx