如何使用 C# 从 Properties.Resources 播放 WAV 文件
How to play WAV file from Properties.Resources using C#
如何播放来自 Properties.Resources
的 wav 文件?
我尝试了一些代码,但每次我的 Priperties.Resource.myFile
把我放在 byte[]
但我的代码需要 string
路径,而不是 byte[]
数组。
System.Media.SoundPlayer player = new System.Media.SoundPlayer();
player.SoundLocation = @"myFile.wav";
player.Play();
我不想使用一些临时文件。可以直接从资源播放吗?
感谢您的建议!
So, Can I play WAV file from Resource?
您可以像这样使用 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();
据我所知有两种方法,见下文:
使用文件路径
先把文件放在工程的根目录下,那么不管你运行程序是Debug
还是Release
模式下,都肯定能访问到文件
var basePath = System.AppDomain.CurrentDomain.BaseDirectory;
SoundPlayer player = new SoundPlayer();
player.SoundLocation = Path.Combine(basePath, @"./../../Reminder.wav");
player.Load();
player.Play();
使用资源
按照下面的动画,将"Exsiting file"添加到项目中。
SoundPlayer player = new SoundPlayer(Properties.Resources.Reminder);
player.Play();
这种方式的优势在于:
运行程序只需要复制"bin"目录下的文件夹"Release"。
如何播放来自 Properties.Resources
的 wav 文件?
我尝试了一些代码,但每次我的 Priperties.Resource.myFile
把我放在 byte[]
但我的代码需要 string
路径,而不是 byte[]
数组。
System.Media.SoundPlayer player = new System.Media.SoundPlayer();
player.SoundLocation = @"myFile.wav";
player.Play();
我不想使用一些临时文件。可以直接从资源播放吗?
感谢您的建议!
So, Can I play WAV file from Resource?
您可以像这样使用 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();
据我所知有两种方法,见下文:
使用文件路径
先把文件放在工程的根目录下,那么不管你运行程序是Debug
还是Release
模式下,都肯定能访问到文件var basePath = System.AppDomain.CurrentDomain.BaseDirectory; SoundPlayer player = new SoundPlayer(); player.SoundLocation = Path.Combine(basePath, @"./../../Reminder.wav"); player.Load(); player.Play();
使用资源
按照下面的动画,将"Exsiting file"添加到项目中。
SoundPlayer player = new SoundPlayer(Properties.Resources.Reminder);
player.Play();
这种方式的优势在于:
运行程序只需要复制"bin"目录下的文件夹"Release"。