繁体   English   中英

SoundPlayer无法使用字符串

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM