1.monogame 3.0 beta1的win8 rt版本,soundeffect,在程序退出时,会出现程序崩溃的现象。
此bug原因,是因为退出是没有关闭XAudio2音频设备。
解决方案:
增加对SharpDX和SharpDX.XAudio2的引用,然后通过反射获得音频设备的引用,将它关闭。代码:
Type soundEffectType = typeof(SoundEffect);
TypeInfo info = IntrospectionExtensions.GetTypeInfo(soundEffectType);
PropertyInfo propInfo = info.GetDeclaredProperty("Device");
object obj = propInfo.GetValue(null);
XAudio2 audioDevice = (XAudio2)obj;
audioDevice.StopEngine();
2.monogame 3.0 beta1的win8 rt版本,在解析xnb文件时,有时会出现错误。
此错误的原因,是因为win rt运行库的反射接口有变化,而monogame在反射时,错误的将static member的值作为instance member返回了。
解决方案:
修改monogame源代码文件ContentExtensions.cs中#WINRT的部分,修改后应该是:
public static Pr