在资产加载期间尝试/捕获不起作用

时间:2014-01-13 19:22:30

标签: exception audio xna xna-4.0

使用以下方法加载声音效果(在C#,XNA中)

SoundEffect effect = Content.Load<SoundEffect>(location);

在某些具有特定声音设置的计算机上,我遇到应用程序崩溃,导致InvalidOperationException异常。内容管理器似乎已正确初始化,位置也正确(在不同的计算机上正常工作)。

示例音频文件位于:http://www.hybridbeasts.com/test.wav

有趣的是,try / catch失败并仍然会导致应用程序崩溃。

try
{
    effect = Content.Load<SoundEffect>(location);
}
catch
{
    Warning.Happened("Problem with audio playback detected. Sound automatically disabled");
    DebugEngine.disableSound = true;
    return;
}

try / catch有什么问题?

调用堆栈如下所示:

  

Microsoft.Xna.Framework.dll!Microsoft.Xna.Framework.Helpers.ThrowExceptionFromErrorCode(int error)+ 0x3d bytes       Microsoft.Xna.Framework.dll!Microsoft.Xna.Framework.Audio.SoundEffect.AllocateFormatAndData(byte [] format,byte [] data,int offset,int count)+ 0x107 bytes
      Microsoft.Xna.Framework.dll!Microsoft.Xna.Framework.Audio.SoundEffect.Create(byte [] format,byte [] data,int offset,int count,int loopStart,int loopLength,System.TimeSpan duration)+ 0x31 bytes
      Microsoft.Xna.Framework.dll!Microsoft.Xna.Framework.Audio.SoundEffect.SoundEffect(byte [] format,byte [] data,int loopStart,int loopLength,System.TimeSpan duration)+ 0xd1 bytes       Microsoft.Xna.Framework.dll!Microsoft.Xna.Framework.Content.SoundEffectReader.Read(Microsoft.Xna.Framework.Content.ContentReader input,Microsoft.Xna.Framework.Audio.SoundEffect existingInstance)+ 0x124 bytes
      Microsoft.Xna.Framework.dll!Microsoft.Xna.Framework.Content.ContentReader.InvokeReader(Microsoft.Xna.Framework.Content.ContentTypeReader reader,object existingInstance)+ 0xdf bytes
      Microsoft.Xna.Framework.dll!Microsoft.Xna.Framework.Content.ContentReader.ReadObjectInternal(object existingInstance)+ 0xfd bytes
      Microsoft.Xna.Framework.dll!Microsoft.Xna.Framework.Content.ContentReader.ReadObject()+ 0x4d bytes
      Microsoft.Xna.Framework.dll!Microsoft.Xna.Framework.Content.ContentReader.ReadAsset()+ 0x88 bytes
      Microsoft.Xna.Framework.dll!Microsoft.Xna.Framework.Content.ContentManager.ReadAsset(string assetName,System.Action recordDisposableObject)+ 0x129 bytes
      Microsoft.Xna.Framework.dll!Microsoft.Xna.Framework.Content.ContentManager.Load(string assetName)+ 0x2c7 bytes
      Project_Ares.exe!Project_Ares.SoundEffectAres.Load(字符串位置)第77行+ 0x2c字节C#

0 个答案:

没有答案