【问题标题】:How to play background music in a C# Console Application如何在 C# 控制台应用程序中播放背景音乐
【发布时间】:2016-03-11 01:42:06
【问题描述】:

所以我用 C# 制作了一个基于文本的小型游戏,但我想要一些音乐,我已经尝试过:

System.Media.SoundPlayer player = new System.Media.SoundPlayer();
player.SoundLocation = "c:\PathToMusic\..music.wav";
player.Play();

哪个有效,但是当我将我的应用程序构建为 .exe 文件时,它不包含在内,因此当其他人在特定文件夹中没有特定声音时,它将无法工作。
我已将该文件添加到我的解决方案资源管理器中,但不知道该文件位置的名称。

【问题讨论】:

  • 将其构建为资源。
  • 试过了,给我一个提示 FileNotFound 的错误,我想这是有道理的,因为我从来没有告诉我的代码解决方案资源管理器中的文件在哪里。

标签: c# deployment background-music


【解决方案1】:

试试这个解决方案:

将音乐文件添加到解决方案中

项目 -> 添加现有项目... -> 添加您的 .wav 文件。

将文件设置为Copy always

  1. 在解决方案资源管理器中单击音乐文件。
  2. 在“属性”面板中,将Copy to Output Directory 设置为Copy always
  3. 另外,将Build Action 设置为Content

这将使 Visual Studio 始终将音乐文件复制到输出目录(例如 Debug 文件夹)。

使用此代码

using System.Media;  

SoundPlayer player = new SoundPlayer();
player.SoundLocation = AppDomain.CurrentDomain.BaseDirectory + "\\yourmusic.wav";
player.Play();

【讨论】:

  • 这给了我这个错误“System.dll 中发生了类型为 'System.IO.FileNotFoundException' 的未处理异常”
  • Nvm,在将音乐文件从 Resource 更改回 Content 后,它起作用了!非常感谢:D
【解决方案2】:

首先添加您的资源。然后在解决方案资源管理器中单击它。在属性面板中,将 Build Action 设置为 resource。

接下来像这样访问它:

player.Stream = new MemoryStream(Properties.Resources.gameMusic);

【讨论】:

    猜你喜欢
    • 2015-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多