我正在尝试播放特定的声音。但是,我似乎无法访问我在解决方案资源管理器中添加的文件。(我有一个名为“Sounds/”的文件夹,里面有几个 .wav 音效)
当我将文件路径硬编码到硬盘上的随机固定位置时,它工作得很好。此外,当我将资源放在“bin/debug/”文件夹中时,它工作得很好(这是我使用该AppDomain.CurrentDomain.BaseDirectory
函数最接近工作相对路径的路径)。
使用我在解决方案资源管理器中添加的文件时,如何使 SoundPlayer 正常工作?
我正在尝试播放特定的声音。但是,我似乎无法访问我在解决方案资源管理器中添加的文件。(我有一个名为“Sounds/”的文件夹,里面有几个 .wav 音效)
当我将文件路径硬编码到硬盘上的随机固定位置时,它工作得很好。此外,当我将资源放在“bin/debug/”文件夹中时,它工作得很好(这是我使用该AppDomain.CurrentDomain.BaseDirectory
函数最接近工作相对路径的路径)。
使用我在解决方案资源管理器中添加的文件时,如何使 SoundPlayer 正常工作?
您可以将它们作为项目资源嵌入到 dll/exe 中,然后通过 Application 对象使用它们:
添加和编辑资源 (Visual C#)
http://msdn.microsoft.com/en-us/library/7k989cfy%28v=vs.90%29.aspx
您还可以使用资源管理器(如果您想单独交付声音文件,这是更好的选择):
资源管理器
http://msdn.microsoft.com/en-us/library/system.resources.resourcemanager%28v=vs.110%29.aspx
System.Media.SoundPlayer player = new System.Media.SoundPlayer(@"c:\mywavfile.wav");
player.Play();
或者您可以使用资源将声音文件嵌入到您的项目中。
System.Media.SoundPlayer player = new System.Media.SoundPlayer(Resources.Yourfile);
player.Play();
更新:当您将声音文件添加到资源时,您可以通过文件名访问它。