好吧,我是个菜鸟,已经在谷歌上花了4个小时了。所以我真的很感谢你的帮助。我正在尝试使用变量播放声音(获得100+声音),并且我已经完成了本教程中的所有操作:http://www.codeproject.com/Articles/17422/Embedding-and-Playing-WAV-Audio-Files-in-a-WinForm
这是可行的:
System.Media.SoundPlayer soundPlayer = new System.Media.SoundPlayer (PROGRAM.Properties.Resources.audio); soundPlayer.Play();
这不起作用:
string file = "PROGRAM.Properties.Resources.audio";
System.Media.SoundPlayer soundPlayer = new System.Media.SoundPlayer (file); soundPlayer.Play();
错误:请确保指定位置存在声音文件...System.Media:SoundPlayer.ValidateSoundFile(StringfileName)
字符串怎么可能不工作呢?
发布于 2014-07-14 01:52:08
当您在第一个示例中使用PROGRAM.Properties.Resources.audio时,您实际上获得了对流的引用(它为您提供了嵌入的音频数据)。这是由.resx生成的自动生成的代码管理的。
当您将"PROGRAM.Properties.Resources.audio"作为字符串传递时,SoundPlayer会将其解释为文件名,然后显然找不到它。
如果您想手动从资源文件中获取音频流,请尝试:
var stream = PROGRAM.Properties.Resources.ResourceManager.GetStream( "audio" );
var soundPlayer = new System.Media.SoundPlayer( stream );
soundPlayer.Play();https://stackoverflow.com/questions/24725426
复制相似问题