由于某种原因,我无法制作 Vitalii 给我的示例。我永远无法获得我在 volder 中的文件数。浏览互联网,我偶然发现了这个链接:
对资源和 GetManifestResourceNames() 感到困惑
Zack 在这个线程上给出的答案,给出了我需要让我的应用程序工作的洞察力。
我使用 Embedded Resource 来查找我需要的所有文件数,然后使用 SoundEffectInstance 播放。以下链接对此有所帮助:
http://matthiasshapiro.com/2011/01/10/embedding-a-sound-file-in-windows-phone-7-app-silverlight/
这是我设法使它工作的方法:
soundCount = GetSoundCount();
private int GetSoundCount()
{
return Assembly.GetExecutingAssembly().GetManifestResourceNames().Where(name => name.Contains(sourceImg)).Count();
}
通过这几行,我设法获得了我的应用程序中文件的确切数量。
为了播放声音,我以第二个链接为例,并生成了以下代码:
if(soundInstance != null)
soundInstance.Stop();
this.soundInstance = SetNextSource();
soundInstance.Play();
private SoundEffectInstance SetNextSource()
{
Random random = new Random();
Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
Stream stream = assembly.GetManifestResourceStream(string.Format("Assembly Name.Folder.{0}.{1}.wav", SubFolder, FileName + random.Next(soundCount)));
SoundEffect se = SoundEffect.FromStream(stream);
return se.CreateInstance();
}
几天后,研究终于成功了。希望这个帖子可以帮助遇到我遇到同样问题的人。
谢谢。