从资源C#播放音乐

时间:2016-11-18 21:52:29

标签: c# audio resources

我想在我的新项目的启动器中播放一些背景音乐。但是我得到了一个错误。

private void playlooping()
{
    SoundPlayer.PlayLooping(system.Resources.Bgm);
}

//Bgm is the name of the song.

出于某种原因,我收到了错误

  

没有超载的方法' PlayLooping'采取1个参数

1 个答案:

答案 0 :(得分:1)

正如我在评论中所提到的,PlayLooping does not take any arguments。因此,您需要指定想要在其他地方播放的声音。这可以通过SoundPlayer - 这样的构造函数设置来完成:

// via string path
var soundPlayer = new SoundPlayer(@"C:\somePath\someFile.wav");

// via stream
var soundPlayer = new SoundPlayer(musicStream);

因此,如果你的资源是一个字符串,你应该很高兴:

var soundPlayer = new SoundPlayer(system.Resources.Bgm);

替代方法是在通过SoundPlayer - 或Site - Stream对象的属性实例化SoundPlayer后设置字符串路径或流:

var soundPlayer = new SoundPlayer();

// via path
soundPlayer.Site = @"C:\path\test.wav";

// via stream
soundPlayer.Stream = someStream;

设置完这个后,你应该好好调用PlayLooping。因此,您的最终代码应该看起来像这样(在测试Windows窗体应用程序中适用于我,声音文件只是放在我的调试文件夹中):

var soundPlayer = new SoundPlayer("test.wav");
soundPlayer.PlayLooping();

您可以在此处SoundPlayer找到完整的文档:https://msdn.microsoft.com/en-us/library/system.media.soundplayer(v=vs.110).aspx