我正在尝试使用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
}
}
我将非常感谢任何有关如何捕捉辅助显示器全屏的建议或发现。