在 Visual C# 项目中将 .mp3 文件放在哪里?

Posted

技术标签:

【中文标题】在 Visual C# 项目中将 .mp3 文件放在哪里?【英文标题】:Where to put .mp3 file in visual C# project.? 【发布时间】:2016-08-07 12:58:22 【问题描述】:

我正在用 Visual C# Winforms 设计一个小型应用程序。我正在使用 NAudio 并播放 .mp3 文件。下面是代码:

IWavePlayer waveOutDevice = new WaveOut();
AudioFileReader audioFileReader = new AudioFileReader("ringtone.mp3");

waveOutDevice.Init(audioFileReader);
waveOutDevice.Play();

我已将此ringtone.mp3 保存在调试文件夹中。但我想如果我在另一个系统上使用这个 exe。那么这个mp3就不行了。所以我想知道在项目中我可以在哪里保存这个 mp3 文件以及如何使用它。

【问题讨论】:

【参考方案1】:

选项 1: 您必须确保 mp3 文件始终与 exe 文件位于同一文件夹中。也许创建一个安装程序,它将两个文件复制到同一个文件夹中。

选项 2: 将 mp3 文件嵌入到 exe 中。只需将 mp3 复制到您的 Visual Basic 解决方案中并将其 Build Actions 设置为 Embedded Resource

然后在你的代码中你会用这个来引用它:

Stream mp3FileStream = Assembly.GetEntryAssembly().GetManifestResourceStream("YourSolution.ringtone.mp3");

这将返回一个 Stream 对象。您必须了解如何将其传递给您的 IWavePlayer 对象。

我的猜测是这样的waveOutDevice.Init(mp3FileStream),但甚至没有测试过。

【讨论】:

构建操作到嵌入式资源的这些选项在哪里 在属性面板上,从项目中选择文件后。这是截图:evernote.com/l/AWmFHCnm2t5O_5rCcvB4LJO6hTcosIo6VZU 好的,我已经为嵌入式资源设置了构建操作。我应该把你在回答中提到的那行代码放在哪里? 您可以开始将它们放在您粘贴问题代码的位置。【参考方案2】:

只需将其添加到项目中即可。 右键单击项目=>添加=>现有项目... 从文件选择器中选择文件。 编译时会发送到输出文件夹。

【讨论】:

以上是关于在 Visual C# 项目中将 .mp3 文件放在哪里?的主要内容,如果未能解决你的问题,请参考以下文章

在matlab中将音频文件转换为字节数组

如何在 Visual Studio for Mac 中将参数传递给 Main() C#

Visual Studio 2010 C# 表单项目 - 拖放 - 最佳方法?

在Java中将mp3转换为wav

在 Visual Studio 2008 中将目录添加到 CAB 项目

在 Visual C# 中将选定行从 DataGridView 移动到另一个