【问题标题】:C# console: Can you locate a .wav file in the same folder as the projectC# 控制台:您能否在与项目相同的文件夹中找到 .wav 文件
【发布时间】:2020-11-07 10:17:16
【问题描述】:

能否在控制台项目的“Debug”文件夹中找到 .wav 文件?

- 我需要做什么 -

我正在尝试在我的游戏中播放循环的 .wav 文件(它是控制台项目,而不是表单),即使代码在任何计算机上运行,​​我也需要找到 .wav 文件。例如,如果我将游戏放在 USB 上并在另一台计算机上运行,​​代码需要在项目文件夹中找到 .wav 文件。

- 问题-

目前我的代码如下所示:

static void Main(string[] args)
    {
        var soundPlayer = new System.Media.SoundPlayer();
        soundPlayer.SoundLocation = @"C:\ProjectFolder\song.wav";
        soundPlayer.PlayLooping();
    }

这确实会播放我的 .wav 文件,但如果我将它带到另一台计算机上,它会尝试在我的 HDD 上找到 .wav 文件,而不是在新计算机的 HDD/SSD 上。

- 我尝试过的-

我已经看过,我找到的每个答案都不起作用。这是一个应该有效但无效的答案:

static void Main(string[] args)
    {
        var soundPlayer = new System.Windows.Media.MediaPlayer();
        soundPlayer.Open(new Uri(Application.StartupPath + @"\ProjectFolder\song.wav"));
        soundPlayer.PlayLooping();
    }

在 Visual Studio 编辑器中,第 1 行的“媒体”带有红色下划线,第 2 行的“应用程序”也是如此。

- 救命! -

我希望这是一个常见问题,并且你们所有人都是比我能找到答案的更好的编码人员。 如果您可以在下面发表评论,那将非常有帮助,即使您知道与此相关的任何内容,或者可以将我指向知道的人。感谢您的阅读。

【问题讨论】:

  • 这能回答你的问题吗? How to play a WPF Sound File resource
  • 对于“媒体”,您可能需要引用另一个库。该“应用程序”可能只需要一个“使用”指令。将文本光标放在带下划线的文本上,然后按 Ctrl+句号,看看 VS 建议什么

标签: c# resources visual-studio-2019


【解决方案1】:

你通常:

  1. 进入 MSVS 解决方案资源管理器

  2. 将文件添加到您的项目根目录(或类似“wav”的子目录)。

  3. 右键单击 .wav 文件 > 选择“属性”> 选择“复制到输出目录”=> 如果较新则复制

    所以每次构建项目时,文件都会自动复制到构建目录中。

  4. 在您的代码中,您可以使用相对路径打开。

    示例:soundPlayer.Open(new Uri("song.wav"));

注意

你也说过'Media' on line 1 is underlined red...

这意味着您需要添加对“System.Media”的引用:

Can't find System.Windows.Media namespace?

我不确定您使用的是什么平台,但也请看这里:Using the Windows Media Player Control in a .NET Framework Solution

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-08
    • 1970-01-01
    • 1970-01-01
    • 2017-10-28
    • 2018-06-16
    相关资源
    最近更新 更多