过去,我发现StackOverflow很有帮助,现在,我遇到了自己的障碍,以为我可以尝试在此处发布。我的问题是,每当我的游戏尝试加载SoundEffect文件时,它就会崩溃并显示InvalidOperationException(详细消息:发生意外错误)。这款游戏是在XNA 4.0框架上编写的,使用C#,Visual Studio 2010表达为我的IDE。加载的声音效果都是.wav文件,并已添加到游戏的Content项目中。我已经检查过董事会,并尝试了以下建议:确认它设置的content.rootDirectory-设置为“ Content”确认content.load 正在通过正确的路径访问资源。使用反射,我得到了应用程序的当前目录,然后使用了根目录+尝试访问的路径。该文件肯定存在,可以访问,并且位于该位置。确保ContentManager内容不为null-已通过调试确认,并且无论如何都会抛出其他异常。确认WAV在8位或16位PCM中。已确认。可能的标头损坏?我尝试加载的所有声音效果都会发生此错误,因此这不是与一个文件有关的标题问题。奇怪的是,这个错误似乎无处不在。在过去的一周里,它一直没有问题,今天它运行得非常好-我还没有进行任何会影响内容加载过程的更改。这是引发错误的代码:public void LoadSoundEffect(ContentManager content, String assetPath){ if (content != null && String.IsNullOrEmpty(assetPath) == false) { // This next line throws the exception. SoundEffect effectLoader = content.Load<SoundEffect>(assetPath); soundLibrary.Add(assetPath, effectLoader); }}这是堆栈跟踪: 在Microsoft.Xna.Framework.Helpers.ThrowExceptionFromErrorCode(Int32错误) 在Microsoft.Xna.Framework.Audio.SoundEffect.AllocateFormatAndData(Byte []格式,Byte []>数据,Int32偏移量,Int32计数) 在Microsoft.Xna.Framework.Audio.SoundEffect.Create(Byte []格式,Byte []数据,Int32 偏移量,Int32计数,Int32 loopStart,Int32 loopLength,TimeSpan持续时间) 在Microsoft.Xna.Framework.Audio.SoundEffect..ctor(Byte []格式,Byte []数据,Int32 loopStart,Int32 loopLength,TimeSpan持续时间) 在Microsoft.Xna.Framework.Content.SoundEffectReader.Read(ContentReader输入, SoundEffect现有实例) 在Microsoft.Xna.Framework.Content.ContentReader.InvokeReader [T](ContentTypeReader 读取器,对象现存实例) 在Microsoft.Xna.Framework.Content.ContentReader.ReadObjectInternal [T](Object 存在实例) 在Microsoft.Xna.Framework.Content.ContentReader.ReadObjectT 在Microsoft.Xna.Framework.Content.ContentReader.ReadAssetT 在Microsoft.Xna.Framework.Content.ContentManager.ReadAsset [T](String assetName, 动作1个RecordDisposableObject) 在Microsoft.Xna.Framework.Content.ContentManager.Load [T](String assetName) 在SerializableDataTypes.AudioManager.LoadSoundEffect(ContentManager内容,字符串 C:\ Users \ Mike \ Documents \ Visual Studio 2010 \ Projects \ Res Judicata中的assetPath) Chapter1 \ SerializableDataTypes \ Script Elements \ AudioManager.cs:第78行在此先感谢您提供的任何帮助-我对此深感困惑,这确实是一个令人沮丧的错误。 最佳答案 只是出于好奇,您是否可以尝试以不同的方式加载声音效果。SoundEffect effect = content.Load<SoundEffect>(String.Format(@"{0}", soundEffectPath))过去在不使用字符串文字时加载某些内容类型时遇到了问题。关于c# - 解决XNA Content Loader InvalidOperationException吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15261323/ 10-17 02:48