C# 即使在分发的情况下也可以播放mp3文件

C# 即使在分发的情况下也可以播放mp3文件,c#,visual-studio,mp3,C#,Visual Studio,Mp3,(2015-12-06) 我使用的是Visual Studio 2013 C#,我想知道如何让该程序将MP3文件作为背景音乐播放,即使它被分发到其他人的计算机上(而不仅仅是在我的计算机上,使用我自己的MP3文件路径,例如C:\my documents\so music.MP3) (2015-12-07) 感谢Maximilian Gerhardt的友好回复。但是当我尝试使用自己的out.wav时,我被一些红线卡住了。。(编译错误…)我不太确定如何继续。(对不起,我是C#的新手) 首先,在项目中的

(2015-12-06) 我使用的是Visual Studio 2013 C#,我想知道如何让该程序将MP3文件作为背景音乐播放,即使它被分发到其他人的计算机上(而不仅仅是在我的计算机上,使用我自己的MP3文件路径,例如
C:\my documents\so music.MP3

(2015-12-07) 感谢Maximilian Gerhardt的友好回复。但是当我尝试使用自己的out.wav时,我被一些红线卡住了。。(编译错误…)我不太确定如何继续。(对不起,我是C#的新手)

首先,在项目中的某个位置创建一个新的资源文件。使用项目资源管理器中的
Add->New element
上下文菜单执行以下操作: (是的,对不起,那是德语。)

创建资源文件后,可以在项目资源管理器中双击该文件并向其添加资源。我添加了一个名为
out.wav
文件。这可能是您的
.mp3
文件。 接下来,您只需在代码中访问该流。添加资源文件还会生成一些代码,让您可以作为流访问该文件。用法,例如:

using System;
using System.IO;
using System.Text;

namespace ResourceTest
{
    class Program
    {
        static void Main(string[] args)
        {
            //Create a memory stream to read the file into..
            MemoryStream outStream = new MemoryStream();
            //Copy our _out.wav File
            SomeResource._out.CopyTo(outStream);
            //Also possible: 
            //SomeResource.ResourceManager.GetStream("out.wav")...
            //Read into a byte array.
            byte[] file_bytes = outStream.ToArray();
            //Close it
            outStream.Close();

            //Do something with file_bytes..
        }
    }
}

现在,您已经将ressource嵌入到ressource文件中,它总是可以访问的(即资源总是以编译的二进制文件进行复制)

谢谢您的帮助。但不幸的是。。无法让它工作。。(请参阅附件)类名
SomeResource
源自我创建的资源文件名(
SomeResource.resx
)。必须将类名更改为创建的资源文件的文件名。(有一个
Resources.resx
,所以你应该试试
Resources.\u out
?)啊哈。就这样。我重新编写了代码,它编译得很好,没有错误。但是。。。。它也不播放声音。。看起来我们成功地将资源加载到了内存中,但是如何从内存中播放资源。。。?很抱歉问了太多问题。您可以使用库
NAudio
创建音频设备并用数据填充,例如,数据可以来自
文件\u bytes[]
。请参阅和。再次感谢:)。马西米兰。你真棒