在运行时播放计算机中的歌曲

时间:2013-07-19 14:19:57

标签: c# xna media-player

我正在开展一个小项目,以后会帮助我制作游戏。我想要实现的是能够从玩家计算机上的路径玩游戏。路径已知,但我找不到任何方法来播放不是来自内容路径的歌曲。

我也不是在谈论更改内容路径的根目录,因为歌曲不会加载LoadContent,它会在游戏已经开启时加载。如果我不能这样做,我将不得不回到开发Windows窗体的游戏,我不是它的粉丝..

2 个答案:

答案 0 :(得分:3)

    System.IO.FileStream fs = new System.IO.FileStream(@"C:\Myfile.wav", System.IO.FileMode.Open);
    SoundEffect mysound = SoundEffect.FromStream(fs);
    fs.Dispose();

@“C:\ Myfile.wav”可以是相对路径或绝对路径。不确定MP3或其他。

最糟糕的情况是,只需将FMod Ex音响系统嵌入到您的XNA游戏中。

答案 1 :(得分:1)

您可以使用Song方法(MSDN从磁盘上的文件(普通MP3文件,而不是通过内容管道的内容)创建Song.FromUri的实例)。

当然,对于该方法有一些注意事项 - 请参阅this answer了解详细信息以及从磁盘上的文件创建Song对象的另一种方法(使用反射)。

(最后,值得指出的是,如果你想坚持使用WinForms的方法,可以安全地在XNA游戏中使用。)