2013-01-23 160 views
4

我试图播放位于我的项目文件夹中的.Wav文件。用C播放.wav文件#

声音文件位于“资源/声音/ 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(); 

我无法让播放声音,我不断收到Windows声音不发现声音的代码。

某处堆栈溢出我发现这个代码找到正确的组装路径应该是什么。

  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 

我试着用他们两个,但他们没有工作。

任何人都知道我在做什么错了?

+1

试图修改你的问题:) – spajce

+0

是的,对不起,我的英语不是很好。你不明白什么? – Arcade

+1

使用ildasm.exe并查看.mresource名称的程序集清单。 –

回答

7

通过转到项目属性 - >资源选择音频并浏览到该文件,将您的Wav文件添加到资源。您将能够看到它作为Propeties.Resources的一部分。将它添加到一个资源文件夹,你可以将其设置为嵌入或离开它是,它被设置为内容

enter image description here

访问了如下

private void button1_Click(object sender, EventArgs e) 
{ 
    SoundPlayer snd = new SoundPlayer(Properties.Resources.tada); 
    snd.Play(); 

} 
4

如果你想添加通过在项目中播放您的.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 

请记住,你写的文件的路径与正斜杠(/)格式,不要使用反斜杠()期间给予的文件的路径,否则你将得到一个错误