如何从Properties.Resources
播放wav文件?
我尝试了一些代码,但每次Priperties.Resource.myFile
给我byte[]
但我的代码需要string
路径,而不是byte[]
数组。
System.Media.SoundPlayer player = new System.Media.SoundPlayer();
player.SoundLocation = @"myFile.wav";
player.Play();
我不想使用某些临时文件。可以从资源直接播放吗?
感谢您的建议!
答案 0 :(得分:0)
那么,我可以从资源中播放WAV文件吗?
您可以使用Stream
这样的属性:
System.Media.SoundPlayer player = new System.Media.SoundPlayer();
player.Stream = new MemoryStream(data);
player.Play();
data
是您从资源文件中获取的byte[]
。
<强>更新强>
Properties.Resources.myFile
实际上应该是一个流,所以请直接使用它:
System.Media.SoundPlayer player = new System.Media.SoundPlayer();
player.Stream = Properties.Resources.myFile;
player.Play();
答案 1 :(得分:0)
据我所知,有两种方法可以做到这一点,见下文:
使用文件路径
首先将文件放在项目的根文件夹中,然后无论您在Debug
还是Release
模式下运行程序,都可以肯定地访问文件。
var basePath = System.AppDomain.CurrentDomain.BaseDirectory;
SoundPlayer player = new SoundPlayer();
player.SoundLocation = Path.Combine(basePath, @"./../../Reminder.wav");
player.Load();
player.Play();
使用资源
按照下面的动画,将“现有文件”添加到项目中。
SoundPlayer player = new SoundPlayer(Properties.Resources.Reminder);
player.Play();
这种方式的优势是:
运行该程序时,仅需要复制“ bin”目录下的“ Release”文件夹。