1

我正在使用 Windows 表单来获取包含相机视频的网站,然后在
我正在使用的这个网站上捕捉图像

webbrowser1.DrawToBitMap(bitmap, bitmapRect)

但图像显示全白。然后我尝试从另一个站点(例如:google.com)捕获图像,该方法非常有效。所以我认为这可能是因为这种方法无法捕捉视频。所以我的问题是我们有没有办法通过网络浏览器控制来捕捉网站内的视频?
这是我嵌入相机视频的代码

    <object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" width="704" height="592" codebase="http://www.apple.com/qtactivex/qtplugin.cab">
    <param name="src" value="empty.mov">
    <param name="autoplay" value="true">
    <param name="controller" value="false">
    <param name="qtsrc" value="rtsp://<link>">
    <embed src="empty.mov" width="704" height="592" qtsrc="rtsp://<link>" autoplay="true" controller="false" target="myself" pluginspage="http://www.apple.com/quicktime/download/">
</object>
4

2 回答 2

0

发生这种情况是因为页面内的视频框不是由网络浏览器呈现,而是由快速插件呈现。因此,网络浏览器没有该区域的图形内容信息。它会绘制空白框。

现在,对屏幕上所有图形内容一无所知的人就是它Screen自己。所以你可以试试Graphics.CopyFromScreen方法。虽然它有一些缺点。这一次,它将捕获屏幕上的所有内容,包括任务栏和标题栏。其次,它将仅捕获页面的可见部分。如果页面需要滚动,或者您需要整页截图,那么我们就有问题了。

不过,我们可以有解决方法。可以通过仔细计算整个屏幕的矩形区域来裁剪任务栏/标题栏。类似地,该页面可以以编程方式滚动、重新捕获并将图像加入到整页视图中。

至于实际实现,我对从屏幕上捕捉完美尺寸的矩形相当乐观。如果你问,我可以帮忙写代码。先试试(小费)。至于 scroll-capture-join 的第二部分,我敢肯定这会很乏味,但可以实现。

于 2013-11-06T03:56:42.723 回答
0

此页面使用 Apple 的 Quick Time ActiveX 控件进行视频播放。最有可能的是,该控件使用 DirectX 并且不响应WM_PRINT消息(由WebBrowser.DrawToBitMap内部使用)。虽然我相信成功的机会很低,但您可以尝试一些其他的事情,具体到WebBrowser(即,在全屏捕获上下文之外):

于 2013-11-06T04:08:40.567 回答