【问题标题】:Playing Music from resources C#从资源 C# 播放音乐
【发布时间】:2016-11-18 21:52:29
【问题描述】:

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

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

//Bgm is the name of the song.

由于某种原因,我得到了错误

方法 'PlayLooping' 没有重载需要 1 个参数

【问题讨论】:

  • 它基本上意味着你不能只用一个或任何参数调用PlayLooping。查看文档here 您可以看到PlayLooping 不接受任何参数。或许this 的回答对你有帮助。
  • 那么我如何将我的音乐文件分配给播放循环。我如何告诉它播放我想要的文件
  • 您的资源是音频文件的路径还是音频文件本身?
  • 我在资源中添加了音频文件,因此该路径指向音频文件。如果那是您所说的,那不是原来的吗?

标签: c# audio resources


【解决方案1】:

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

// 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);

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

var soundPlayer = new SoundPlayer();

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

// via stream
soundPlayer.Stream = someStream;

正确设置后,您应该可以致电PlayLooping。所以你的最终代码应该是这样的(适用于我的测试窗口窗体应用程序,声音文件只需放在我的调试文件夹中):

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

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

【讨论】:

  • 好的,我替换 SoundPlayer.PlayLooping(system.Resources.Bgm);使用 var soundPlayer = new SoundPlayer(system.Resources.Bgm);线。好消息是错误消失了。不好的是。我启动应用程序时仍然听不到音乐
  • 你还是应该打电话给soundPlayer.PlayLooping() :)
  • "soundplayer 不包含 PLaylooping 的定义"??
  • 私有 void PlayLooping() { SoundPlayer.Playlooping(); var soundPlayer = new SoundPlayer(Resources.Bgm); }
  • 应该是这样的:var soundPlayer = new SoundPlayer(Resources.Bgm); soundPlayer.PlayLooping();
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多