我在我的项目中添加了一个嵌入式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播放。
答案 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")