DirectShow在IMediaControl.Run()上返回hresult 0x887601C2

时间:2014-01-23 22:08:22

标签: c# .net directshow

我正在做一个简单的C#代码,它使用DirectShowLib从USB PCTV录制模拟电视(广播中的所有内容:音频,视频和VBI)。有时,并非总是如此,当我调用mediaControl.Run()方法时,它会崩溃并返回HRESULT 0x887601C2,这在任何DirectShow或.NET文档中都找不到意义。

任何人都知道代码是什么意思? 谢谢。

1 个答案:

答案 0 :(得分:2)

0x887601C2 is DDERR_SURFACELOST并且与视频的呈现相关,例如在播放期间您切换用户,注销,屏幕保护程序等等。视频渲染器正在丢失资源它用于显示视频,因此错误。

如果你在Run上立即得到这个,也许你正在双监视器系统上运行你的应用程序,视频渲染器设置在一个监视器上,而窗口大多数位于另一个监视器上,并且需要不同的设置才能重新获取视频演示的硬件资源。