C# SoundPlayer赢得';我不能用绳子
好吧,我是个笨蛋,已经在谷歌上花了4个小时了。所以我真的非常感谢你的帮助。我尝试用一个变量播放声音(获得100多个声音),我已经完成了本教程中的所有工作: 这项工作: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
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文件的URLPROGRAM.Properties.Resources.Audio
是程序
命名空间中的一个实例成员,不能用字符串表示。但我不想将wav文件嵌入到项目中。如何使用变量播放嵌入文件?我没那么难吧?如果你阅读了上面提供的教程,它详细介绍了如何将资源(如.wav文件)添加到项目中(请参阅标题为“将音频文件添加到资源”的部分)-还可以看到我已经嵌入了音频文件。但是我不知道如何在不输入.Properties.Resources的情况下使用SoundPlayer访问它们。直接的。A当我试图使用一个变量时,我只会得到错误。我只想要一个简单的代码,通过一个变量来播放wav文件,这样我就可以播放不同的声音。非常感谢mutch Chris!工作出色。