无法使用Directshow从辅助监视器捕获全屏

时间:2015-05-20 06:43:51

标签: c# directshow

我正在尝试使用Direct-show通过HDMI捕获连接到PC的PC的屏幕。 我使用捕获卡作为硬件和Direct show的示例抓取方法来渲染捕获的帧。

问题是我无法将辅助显示器的完整屏幕渲染到我的计算机上。两台PC的配置都不同。我尝试过给出不同的帧大小值,比如1366 * 768,但我相信它只需要1280 * 768。

此外,我将帧大小设置为1366 * 768甚至我的PC设置为相同的显示设置,但仍无法呈现全屏。

Here是我用于捕获和渲染的代码。 Capture类有一个名为frame size 的属性,其大小已设置为1366 * 768但是一旦我这样做并运行代码它会显示一个空白屏幕,当我将设置更改为1280 * 768它将渲染辅助监视器,但不会渲染它的全屏。

 Size size = new Size(1366, 768);
            capture.FrameSize = size;

其中捕获类具有以下给定属性

public Size FrameSize
        {
            get
            {
                BitmapInfoHeader bmiHeader;
                bmiHeader = (BitmapInfoHeader) getStreamConfigSetting( videoStreamConfig, "BmiHeader" );
            //  Size size = new Size( bmiHeader.Width, bmiHeader.Height );
                Size size = new Size(1280, 768);
                return( size );
            }
            set
            {
                BitmapInfoHeader bmiHeader;
                bmiHeader = (BitmapInfoHeader) getStreamConfigSetting( videoStreamConfig, "BmiHeader" );
                bmiHeader.Width = 1280;
                bmiHeader.Height = 768;
                setStreamConfigSetting( videoStreamConfig, "BmiHeader", bmiHeader );
//#if NEWCODE
                this.videoCaps = null;
//#endif
            }       
        }

我将非常感谢任何有关如何捕捉辅助显示器全屏的建议或发现。

0 个答案:

没有答案