我使用 Expression.Encoder 编写了一些带有 Logitech 网络摄像头的 C# 代码接口。该代码很容易设置,并且在我的机器和测试人员的机器上运行良好。不幸的是,在现场,相机的预览屏幕显示黑屏。我已经确认相机在 Logitech 的应用程序和 MS 的 Expression 应用程序中都显示了一个提要。已安装 Windows Media Player 和 DirectX 11。问题似乎在于有人不工作的预览窗口创建。
// create the camera feed with just a video
currentJob = new LiveJob();
currentDeviceSource = currentJob.AddDeviceSource(currentVideoDevice, null);
System.Drawing.Size size = new System.Drawing.Size(250, 275);
currentDeviceSource.PickBestVideoFormat(size, (long)15);
SourceProperties sp = currentDeviceSource.SourcePropertiesSnapshot();
pnlCameraPreview.Size = new System.Drawing.Size(sp.Size.Width, sp.Size.Height);
currentJob.OutputFormat.VideoProfile.Size = new System.Drawing.Size(sp.Size.Width, sp.Size.Height);
// attach to the preview panel
currentDeviceSource.PreviewWindow = new PreviewWindow(new HandleRef(pnlCameraPreview, hwndPreviewPanel));
currentJob.ActivateSource(currentDeviceSource);
有问题的面板(pnlCameraPreview)是一个在 wpf 内部托管的 Windows 窗体面板。任何关于为什么这不起作用的想法将不胜感激!