在独立应用中播放嵌入式WAV

时间:2015-01-12 20:12:36

标签: c# visual-studio-2012 audio

我在我的项目中添加了一个嵌入式wav文件,遵循将其嵌入到resx文件中的msdn准则。由于这是一个独立的应用程序,我不想在本地复制文件/安装任何东西。

System.Reflection.Assembly a = System.Reflection.Assembly.GetExecutingAssembly();
System.IO.Stream s = a.GetManifestResourceStream("myApp.mySound");
SoundPlayer player = new SoundPlayer(s);
player.Play();

这可以编译,但实际的声音并没有播放,相反,Windows播放。

1 个答案:

答案 0 :(得分:3)

我能够重现你的问题。

以下为我解决了这个问题:

System.IO.Stream s = Resources.ResourceManager.GetStream("speedwarning");
SoundPlayer player = new SoundPlayer(s);
player.Play();

我的文件是" speedwarning.wav",我将其添加为嵌入式资源。

您必须使用YOUR_APP.Properties"添加"并且让我感到震惊的一件事是,在解决方案资源管理器中,文件显示为' speedwarning .wav',但实际的资源名称只是“加速警告”。您可以检查文件" Resources.resx"要查看名称应该是什么...或者右键单击项目,选择属性,然后在"资源"中查找资源。选项卡(您可能需要将下拉菜单切换为"音频Ctrl + 4")