[英]SoundPlayer won't work with a string
好的,我是菜鸟,已经在Google呆了4个小时。 因此,我将非常感谢您的帮助。 我正在尝试播放带有变量的声音(获得100多种声音),并且我在本教程中已完成所有操作: http : //www.codeproject.com/Articles/17422/Embedding-and-Playing-WAV-Audio-文件-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)
字符串怎么可能不起作用?
在第一个示例中使用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();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.