在独立应用程序中播放嵌入的 WAV
Play embedded WAV in standalone app
我在我的项目中添加了一个嵌入式 wav 文件,遵循将其嵌入到 resx 文件中的 msdn 指南。由于这是一个独立的应用程序,我不想复制文件 locally/install 任何东西。
System.Reflection.Assembly a = System.Reflection.Assembly.GetExecutingAssembly();
System.IO.Stream s = a.GetManifestResourceStream("myApp.mySound");
SoundPlayer player = new SoundPlayer(s);
player.Play();
这可以编译,但不会播放实际的声音,而是播放 windows 叮当声。
我能够重现您的问题。
以下为我解决了这个问题:
System.IO.Stream s = Resources.ResourceManager.GetStream("speedwarning");
SoundPlayer player = new SoundPlayer(s);
player.Play();
我的文件是 "speedwarning.wav",我将其添加为嵌入式资源。
您必须添加 "using YOUR_APP.Properties",让我感到困惑的一件事是,在解决方案资源管理器中,资源文件夹下的文件显示为 'speedwarning.wav',但实际的资源名称只是 'speedwarning'。您可以检查文件 "Resources.resx" 以查看名称应该是什么...或右键单击项目,选择属性,然后在 "Resources" 选项卡中找到资源(您可能需要切换下拉菜单至 "Audio Ctrl+4")
我在我的项目中添加了一个嵌入式 wav 文件,遵循将其嵌入到 resx 文件中的 msdn 指南。由于这是一个独立的应用程序,我不想复制文件 locally/install 任何东西。
System.Reflection.Assembly a = System.Reflection.Assembly.GetExecutingAssembly();
System.IO.Stream s = a.GetManifestResourceStream("myApp.mySound");
SoundPlayer player = new SoundPlayer(s);
player.Play();
这可以编译,但不会播放实际的声音,而是播放 windows 叮当声。
我能够重现您的问题。
以下为我解决了这个问题:
System.IO.Stream s = Resources.ResourceManager.GetStream("speedwarning");
SoundPlayer player = new SoundPlayer(s);
player.Play();
我的文件是 "speedwarning.wav",我将其添加为嵌入式资源。
您必须添加 "using YOUR_APP.Properties",让我感到困惑的一件事是,在解决方案资源管理器中,资源文件夹下的文件显示为 'speedwarning.wav',但实际的资源名称只是 'speedwarning'。您可以检查文件 "Resources.resx" 以查看名称应该是什么...或右键单击项目,选择属性,然后在 "Resources" 选项卡中找到资源(您可能需要切换下拉菜单至 "Audio Ctrl+4")