我正在尝试创建一个包含声音的库,但如果我使用在线uri,我无法使URI工作
new Uri("http://www.archive.org/download/BrahmsViolinConcerto-Heifetz/03Iii.AllegroGiocosoMaNonTroppoVivace.mp3")
它工作正常,因此问题是正确链接到我项目中的文件夹
我在我的WP Game Librarys文件夹中我有\ Sounds \ letters,在该文件夹中是一个名为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”作为参数
我还将声音文件包含在我的项目中,如
我刚收到一个
Microsoft.Xna.Framework.dll中出现'System.InvalidOperationException'类型的第一次机会异常
但它是一个uri问题,我确信我尝试了一个工作得很好的在线URI
另外,我对2件事情有疑问,MediaPlayer在游戏中使用是正确的吗?图书馆可以播放声音(甚至包含它们)
答案 0 :(得分: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