添加要构建的声音文件,并找到路径? C#

时间:2017-03-02 18:04:29

标签: c# file

在我的基于控制台的程序中,我想要在它的末尾使用声音文件,我能够让它工作但是当我发布项目并尝试将其发送给其他人时我无法得到它要包含声音文件,我该如何做到这一点?

2 个答案:

答案 0 :(得分:1)

有许多潜在的解决方案。其中一个可能是将声音文件作为资源嵌入。

我建议编写安装程序。迟早你还需要一个。也许你之前见过其中一个。总是要求管理员权限,然后单击 Next 按钮,直到所有内容都安装正确为止。

我想指向InnoSetup,这是一个基于文本的免费安装程序。这对版本控制系统很有用。我特别喜欢它,因为我可以在构建脚本中修改每个必要的细节:只需用版本号写一行文本到该文件,它就可以了。

学习非常简单,网上有很多例子。文档非常完整。

您需要的是[Files]部分,例如

[Files]
Source: "MYPROG.EXE"; DestDir: "{app}"
Source: "MYSOUND.WAV"; DestDir: "{app}"

然后您就可以从与可执行文件相同的目录中访问音乐。

另请参阅问题“List of InnoSetup pages in order with parameters and screenshot”,它会让您了解InnoSetup的功能。

答案 1 :(得分:1)

  1. 将WAV文件添加到项目中(在解决方案资源管理器中右键单击您的项目,选择添加|现有项目...)
  2. 在解决方案资源管理器中,转到您添加的文件的属性, 对于Build Action,选择" Embedded Resource"。
  3. 将以下代码添加到您的控制台应用程序:
  4. 代码:

    System.Reflection.Assembly a = System.Reflection.Assembly.GetExecutingAssembly();
    System.IO.Stream s = a.GetManifestResourceStream("<assemblyname>.<wavfilename>.wav");
    SoundPlayer player = new SoundPlayer(s);
    player.PlaySync();
    

    <assemblyname>替换为程序集的名称,将<wavfilename>替换为您添加的WAV文件的名称。

    对于我的测试代码,该行看起来像这样:

    System.IO.Stream s = a.GetManifestResourceStream("ConsoleApp3.tada.wav");
    

    因为我的程序集名称是&#34; ConsoleApp3&#34;并且wav文件被称为&#34; tada.wav&#34;。

    请注意,您还需要在源代码文件中添加using System.Media;