这听起来像是该库、您尝试加载的内容文件或 Windows Phone CLR 本身有问题。
这是引发该异常的库中的代码:
/// <summary>
/// Invoked when a video device reports a video format change.
/// </summary>
/// <param name="videoFormat">The new video format.</param>
protected override void OnFormatChange(VideoFormat videoFormat)
{
if (videoFormat.PixelFormat != PixelFormatType.Format32bppArgb)
{
throw new InvalidOperationException(String.Format("Only 32 Bit ARGB pixel format is supported, not {0}.", videoFormat.PixelFormat));
}
detector.ChangeFormat(videoFormat.PixelWidth, videoFormat.PixelHeight);
vidFormat = videoFormat;
}
这是一个非常简单的比较,让我相信 videoFormat 参数的 PixelFormat 属性实际上不是 PixelFormatType.Format32bppArgb。
如果没有更多细节和更大的代码示例,以及导致问题的文件,几乎不可能知道这里发生了什么。
我真的无法想象这是怎么发生的,因为 VideoFormat 和 PixelFormatType 都是 Windows Phone 的内置 CLR 类型。PixelFormatType 是一个简单的枚举,甚至没有位标记,因此重叠位字段不会成为问题。VideoFormat 的 PixelFormat 属性属于 PixelFormatType 类型,因此您不可能使用此值引发此异常。
我会向图书馆的开发人员和 Microsoft 报告这一点,因为这似乎是以一种无形的方式出现了非常大的问题。
当您尝试使用其他内容文件时会发生这种情况吗?