Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.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
无法从文件中加载XNA SoundEffect_Xna_Xna 4.0_Audio - Fatal编程技术网

无法从文件中加载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));
    }