无法从文件中加载XNA SoundEffect
我有一本字典可以储存音效,比如:无法从文件中加载XNA SoundEffect,xna,xna-4.0,audio,Xna,Xna 4.0,Audio,我有一本字典可以储存音效,比如: public static Dictionary<string, SoundEffect> Hangok = new Dictionary<string, SoundEffect>(); ,其中Azonosító是文件名 一切都很好,文件都加载了,只有一个除外;将创建一个异常: 由于对象的当前状态,操作无效 ,对我来说没有多少信息。谁能解释一下这个错误消息,或者告诉我为什么SoundEffect.FromStream无法读取?为什么?什
public static Dictionary<string, SoundEffect> Hangok = new Dictionary<string, SoundEffect>();
,其中Azonosító是文件名
一切都很好,文件都加载了,只有一个除外;将创建一个异常:
由于对象的当前状态,操作无效
,对我来说没有多少信息。谁能解释一下这个错误消息,或者告诉我为什么SoundEffect.FromStream无法读取?为什么?什么时候解决办法
提前感谢:
Péter
我使用ContentManager加载SoundEffect。将wav文件放在内容项目中,它应该刚刚加载
例如SoundEffect s=Content.Load(“名称”);
这不是一个完整的、但有效的解决方案。“回答我的问题”只是因为它可能对其他开发人员有用,他们也不知道问题可能是什么
try
{
GStatic.Hangok.Add(Azonosító, SoundEffect.FromStream(File.OpenRead(Azonosító)));
}
catch
{
GStatic.Hangok.Add(Azonosító, new SoundEffect(File.ReadAllBytes(Azonosító), 11025, AudioChannels.Mono));
}
我不知道为什么不能以正常的方式加载该文件,为什么可以像在异常处理程序中那样加载该文件。在mono中拥有一个文件应该不是什么大问题。如果有人知道,请留言。谢谢,但我不想使用content manager。我更喜欢从文件加载。只有在文件名使用非英语字符时才会发生这种情况吗?您是否可以尝试加载相同的文件,但仅使用英文字符?如果这不起作用,请确保您的.wav是8位或16位音频(尝试将其添加到内容项目中,看看它是否编译)。文件名和位没有问题。我也检查了content manager,即使是在另一个程序中,因为我不想用它来干扰我的程序。这也给出了错误信息。最后我尝试了其他方法(回答这个问题),结果发现文件是mono。
SoundEffect s = Content.Load<SoundEffect>("name");
try
{
GStatic.Hangok.Add(Azonosító, SoundEffect.FromStream(File.OpenRead(Azonosító)));
}
catch
{
GStatic.Hangok.Add(Azonosító, new SoundEffect(File.ReadAllBytes(Azonosító), 11025, AudioChannels.Mono));
}