我遵循将msms嵌入到resx文件中的msdn准则,将一个嵌入的wav文件添加到了我的项目中。由于这是一个独立的应用程序,因此我不想在本地复制文件/安装任何内容。
System.Reflection.Assembly a = System.Reflection.Assembly.GetExecutingAssembly();
System.IO.Stream s = a.GetManifestResourceStream("myApp.mySound");
SoundPlayer player = new SoundPlayer(s);
player.Play();
这样可以编译,但是实际的声音不会播放,而是会播放Windows ding。
最佳答案
我能够重现您的问题。
以下为我解决了它:
System.IO.Stream s = Resources.ResourceManager.GetStream("speedwarning");
SoundPlayer player = new SoundPlayer(s);
player.Play();
我的文件是“speedwarning.wav”,我将其添加为嵌入式资源。
您必须添加“using YOUR_APP.Properties”,而令我困扰的一件事是在解决方案资源管理器中的Resources文件夹下,文件显示为“speedwarning.wav”,但实际的资源名称只是“speedwarning” '。您可以检查文件“Resources.resx”以查看名称是...,或右键单击该项目,选择属性,然后在“资源”标签中找到资源(您可能必须将下拉菜单切换为“音频Ctrl + 4“)
关于c# - 在独立应用程序中播放嵌入式WAV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27909991/