SoundPlayer不能与字符串一起工作

本文关键字:一起 工作 字符串 不能 SoundPlayer | 更新日期: 2023-09-27 18:12:47

好吧,我是一个新手,已经在谷歌上花了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();

This does not work:

string file = "PROGRAM.Properties.Resources.audio";

System.Media.SoundPlayer soundPlayer = new System.Media.SoundPlayer (file); soundPlayer.Play();

ERROR: Please be sure a sound file存在于指定的位置…System.Media: SoundPlayer.ValidateSoundFile (StringfileName)

字符串怎么可能不工作?

SoundPlayer不能与字符串一起工作

当您在第一个示例中使用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();