Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何窃取另一个应用程序';s视频(通过hwnd)并在单独的应用程序中显示_C#_Video_Video Capture_Hwnd - Fatal编程技术网

C# 如何窃取另一个应用程序';s视频(通过hwnd)并在单独的应用程序中显示

C# 如何窃取另一个应用程序';s视频(通过hwnd)并在单独的应用程序中显示,c#,video,video-capture,hwnd,C#,Video,Video Capture,Hwnd,我想把Skype的视频插入我自己的应用程序。我正在使用skype4com来控制通话,但我找不到任何参考资料或示例,表明有一种设备可以获取其视频流,并将其嵌入到您的应用程序中。我曾试图加入SkypeKit计划,但一个月后,我仍在等待他们的任何消息,我听说你经常只是等待他们的消息 我想知道我还能做些什么,比如查找Skype视频的hwnd并在我的应用程序中拥有的面板/表单等中显示和使用它,然后隐藏Skype窗口的其余部分。我试着在谷歌上搜索一般的主题,但可能是因为我不知道这个概念的正确描述,所以我找不

我想把Skype的视频插入我自己的应用程序。我正在使用skype4com来控制通话,但我找不到任何参考资料或示例,表明有一种设备可以获取其视频流,并将其嵌入到您的应用程序中。我曾试图加入SkypeKit计划,但一个月后,我仍在等待他们的任何消息,我听说你经常只是等待他们的消息

我想知道我还能做些什么,比如查找Skype视频的hwnd并在我的应用程序中拥有的面板/表单等中显示和使用它,然后隐藏Skype窗口的其余部分。我试着在谷歌上搜索一般的主题,但可能是因为我不知道这个概念的正确描述,所以我找不到任何东西

粗略地说,我知道我可以做一些事情,比如使用窗口句柄抓取帧的位图并在我自己的应用程序中显示,隐藏Skype,但这可能会带来很大的开销

有人知道怎么做,或者这代表了什么概念,这样我就可以自己找到它了吗


谢谢

这不是问题的最终或完整答案,但它包含了我所问问题的部分答案

我最终尝试了各种各样的事情,取得了不同程度的成功

解决这类问题的第一个问题显然是确定您试图重新使用的视频是否通过DirectX渲染

如果视频不是DirectX渲染的,那么您确实可以从窗口捕获视频并在任何您喜欢的地方实时播放。web上有各种各样的示例,您应该了解如何从窗口捕获位图。诀窍是,窗口可以通过不透明度不可见,但不能最小化(最小化它不会更新)!您只需在包含视频的窗口中使用找到的hwnd,并在循环中通过各种方法获取这些位图的副本,然后在其他地方显示它们。根据你电脑的速度和视频的大小,这种方法的效果还算不错,我没有问题

如果您试图劫持的视频是通过DirectX呈现的,那么您大部分(但不是全部)都是运气不佳。因为DirectX视频是由图形卡(而不是操作系统)直接渲染到操作系统表面上的,所以您必须使用完全不同的方法将视频捕获为帧并在别处显示。关于如何进行DirectX屏幕捕获,有多种示例。然而,最大的问题是,如果DirectX窗口被隐藏、重叠或不透明度设置为零,您将无法捕获任何内容!我甚至尝试使用virtual desktop manager软件,看看我是否可以欺骗系统在虚拟窗口中播放DirectX视频,然后捕获该视频在我想要的地方播放,但当然它比我聪明,我得到了一张空白图像。所以,底线似乎是,除非你真的做了一些极端的事情,比如写一个虚拟图形卡驱动程序,否则你就不走运了。(有各种有趣的方法,其中包括编写DirectX代理,这些代理可以在将视频/静像传输到图形卡的过程中捕获视频/静像,但我仍然认为您可能需要一个虚拟图形驱动程序来说服它显示表面是可见的,因此值得渲染。)