我正在尝试播放位于项目内的文件夹中的.Wav文件。
声音文件位于“Resource / Sounds / slot_roll_on.Wav”
资源文件夹是我自己在项目的根目录中创建的文件夹。
这是我用来运行.wav文件的代码
Assembly a = Assembly.GetExecutingAssembly();
Stream s = a.GetManifestResourceStream("kisscam.g.resources.Resources.Sounds.slot_roll_on.wav");
SoundPlayer snd = new SoundPlayer(s);
snd.Play();
我无法播放声音,我不断发出声音,因为找不到声音。
在堆栈溢出的某处,我发现这段代码可以找到正确的汇编路径。
Assembly a = Assembly.GetExecutingAssembly();
string[] resourceNames = Assembly.GetExecutingAssembly().GetManifestResourceNames();
int i;
for (i = 0; i < resourceNames.Length; i++)
{
MessageBox.Show(resourceNames[i]);
}
输出这两条路径
kisscam.Properties.Resources.resources
和
kissscam.g.resources
我尝试过使用它们,但它们都不起作用。
任何人都知道我做错了什么?
答案 0 :(得分:8)
转到您的项目属性 - &gt;将您的Wav文件添加到资源资源选择音频并浏览到该文件。然后,您将能够将其视为pf Propeties.Resources
的一部分。它会将它添加到资源文件夹,您可以在其中将其设置为嵌入式或保持原样,将其设置为内容
像这样访问
private void button1_Click(object sender, EventArgs e)
{
SoundPlayer snd = new SoundPlayer( Properties.Resources.tada);
snd.Play();
}
答案 1 :(得分:5)
如果您想通过在项目中播放 .wav 文件来在程序中添加音乐。然后你必须像这样添加 .wav 文件。
using System.Media; // write down it at the top of the FORM
SoundPlayer my_wave_file = new SoundPlayer("F:/SOund wave file/airplanefly.wav");
my_wave_file.PlaySync(); // PlaySync means that once sound start then no other activity if form will occur untill sound goes to finish
请记住,您必须使用正斜杠(/)格式编写文件的路径,在给出路径时不要使用反斜杠()到文件,否则你会收到错误
答案 2 :(得分:0)
目前,我知道这样做的两种方法,如下所示:
使用文件路径
首先将文件放在项目的根文件夹中,然后无论您在Debug
还是Release
模式下运行程序,都可以肯定地访问文件。接下来,使用类SoundPlayer
对其进行修饰。
var basePath = System.AppDomain.CurrentDomain.BaseDirectory;
SoundPlayer player = new SoundPlayer();
player.SoundLocation = Path.Combine(basePath, @"./../../Reminder.wav");
player.Load();
player.Play();
使用资源
按照下面的动画,将“现有文件”添加到项目中。
SoundPlayer player = new SoundPlayer(Properties.Resources.Reminder);
player.Play();
与其他方式相比,这种方式的优势是:
运行该程序时,仅需要复制“ bin”目录下的“ Release”文件夹。