2012-01-31 62 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