C# 即使在分发的情况下也可以播放mp3文件
(2015-12-06) 我使用的是Visual Studio 2013 C#,我想知道如何让该程序将MP3文件作为背景音乐播放,即使它被分发到其他人的计算机上(而不仅仅是在我的计算机上,使用我自己的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#的新手) 首先,在项目中的
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[]
。请参阅和。再次感谢:)。马西米兰。你真棒