Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SoundPlayer赢得';我不能用绳子_C#_Audio - Fatal编程技术网

C# SoundPlayer赢得';我不能用绳子

C# SoundPlayer赢得';我不能用绳子,c#,audio,C#,Audio,好吧,我是个笨蛋,已经在谷歌上花了4个小时了。所以我真的非常感谢你的帮助。我尝试用一个变量播放声音(获得100多个声音),我已经完成了本教程中的所有工作: 这项工作: System.Media.SoundPlayer SoundPlayer=新的System.Media.SoundPlayer (程序、属性、资源、音频); soundPlayer.Play() 这不起作用: string file=“PROGRAM.Properties.Resources.audio” System.Medi

好吧,我是个笨蛋,已经在谷歌上花了4个小时了。所以我真的非常感谢你的帮助。我尝试用一个变量播放声音(获得100多个声音),我已经完成了本教程中的所有工作:

这项工作:

System.Media.SoundPlayer SoundPlayer=新的System.Media.SoundPlayer
(程序、属性、资源、音频);
soundPlayer.Play()

这不起作用:

string file=“PROGRAM.Properties.Resources.audio”

System.Media.SoundPlayer SoundPlayer=新的System.Media.SoundPlayer
(文件);
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();

对于接受字符串的SoundPlayer构造函数,它必须是文件路径或.wav文件的URL
PROGRAM.Properties.Resources.Audio
程序
命名空间中的一个实例成员,不能用字符串表示。但我不想将wav文件嵌入到项目中。如何使用变量播放嵌入文件?我没那么难吧?如果你阅读了上面提供的教程,它详细介绍了如何将资源(如.wav文件)添加到项目中(请参阅标题为“将音频文件添加到资源”的部分)-还可以看到我已经嵌入了音频文件。但是我不知道如何在不输入.Properties.Resources的情况下使用SoundPlayer访问它们。直接的。A当我试图使用一个变量时,我只会得到错误。我只想要一个简单的代码,通过一个变量来播放wav文件,这样我就可以播放不同的声音。非常感谢mutch Chris!工作出色。