我发现StackOverflow在过去是一个非常有用的参考,现在我已经遇到了自己的障碍,我想我会试着在这里发帖。
我的问题是,每当我的游戏尝试加载SoundEffect文件时,它都会因InvalidOperationException崩溃(详细消息:发生意外错误)。这个游戏是在XNA 4.0框架上编写的,在C#中使用Visual Studio 2010 express作为我的IDE。正在加载的声音效果都是.wav文件,并被添加到游戏的内容项目中。
我检查了电路板并尝试了以下建议:
奇怪的是,这个错误似乎无处不在。它在过去一周没有问题,今天它变得非常糟糕 - 而且我没有做任何会影响内容加载过程的更改。
以下是抛出错误的代码:
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);
}
}
这是堆栈跟踪:
at Microsoft.Xna.Framework.Helpers.ThrowExceptionFromErrorCode(Int32 error) 在Microsoft.Xna.Framework.Audio.SoundEffect.AllocateFormatAndData(Byte [] format,Byte []&gt; data,Int32 offset,Int32 count) 在Microsoft.Xna.Framework.Audio.SoundEffect.Create(Byte []格式,Byte []数据,Int32 offset,Int32 count,Int32 loopStart,Int32 loopLength,TimeSpan duration) 在Microsoft.Xna.Framework.Audio.SoundEffect..ctor(Byte []格式,字节[]数据,Int32 loopStart,Int32 loopLength,TimeSpan duration) 在Microsoft.Xna.Framework.Content.SoundEffectReader.Read(ContentReader输入, SoundEffect现有实例) 在Microsoft.Xna.Framework.Content.ContentReader.InvokeReader [T](ContentTypeReader 读者,对象现有实例) 在Microsoft.Xna.Framework.Content.ContentReader.ReadObjectInternal [T](对象 existingInstance) 在Microsoft.Xna.Framework.Content.ContentReader.ReadObjectT 在Microsoft.Xna.Framework.Content.ContentReader.ReadAssetT 在Microsoft.Xna.Framework.Content.ContentManager.ReadAsset [T](String assetName, Action`1 recordDisposableObject) 在Microsoft.Xna.Framework.Content.ContentManager.Load [T](String assetName) 在SerializableDataTypes.AudioManager.LoadSoundEffect(ContentManager content,String asset:)在C:\ Users \ Mike \ Documents \ Visual Studio 2010 \ Projects \ Res Judicata中 第1章\ SerializableDataTypes \ Script Elements \ AudioManager.cs:第78行
提前感谢您提供的任何帮助 - 我对此感到非常难过,这是一个非常令人沮丧的错误。
答案 0 :(得分:0)
出于好奇心的缘故,您是否可以稍微尝试加载声音效果。
SoundEffect effect = content.Load<SoundEffect>(String.Format(@"{0}", soundEffectPath))
过去我在使用字符串文字时加载某些内容类型时遇到了问题。