Windows runtime 使用Windows 8应用程序进行实时屏幕捕获
我想在Windows 8应用程序中显示我自己的实时屏幕截图。 在其他项目中,我曾经使用屏幕捕获软件,在自己的机器上模拟带有桌面屏幕的视频输入卡(然后与其他软件录制或共享屏幕) 软件: 我已经在我的Windows8.1操作系统中用VLC安装并测试了该软件,它们工作得很好,但是如果我尝试在我的应用程序中使用它,它就是找不到输入视频源 视觉解释: 例如,在安装虚拟屏幕捕获后,如果我运行VLC并选择“媒体->打开捕获设备”,我可以选择虚拟捕获驱动程序 如果我播放它,它会显示我的桌面,因此驱动程序已正确安装在我的系统上 但是,当我在Windows 8应用程序中搜索视频捕获设备时,它就是找不到。以下是我的javascript/WinRT代码:Windows runtime 使用Windows 8应用程序进行实时屏幕捕获,windows-runtime,windows-8.1,video-capture,screen-capture,Windows Runtime,Windows 8.1,Video Capture,Screen Capture,我想在Windows 8应用程序中显示我自己的实时屏幕截图。 在其他项目中,我曾经使用屏幕捕获软件,在自己的机器上模拟带有桌面屏幕的视频输入卡(然后与其他软件录制或共享屏幕) 软件: 我已经在我的Windows8.1操作系统中用VLC安装并测试了该软件,它们工作得很好,但是如果我尝试在我的应用程序中使用它,它就是找不到输入视频源 视觉解释: 例如,在安装虚拟屏幕捕获后,如果我运行VLC并选择“媒体->打开捕获设备”,我可以选择虚拟捕获驱动程序 如果我播放它,它会显示我的桌面,因此驱动程序已正
var deviceInfo = Windows.Devices.Enumeration.DeviceInformation;
deviceInfo.findAllAsync(Windows.Devices.Enumeration.DeviceClass.videoCapture).then(function (devices) {
// Add the devices to deviceList
if (devices.length > 0) {
for (var i = 0; i < devices.length; i++) {
deviceList.push(devices[i]);
}
var deviceInfo=Windows.Devices.Enumeration.DeviceInformation;
deviceInfo.findAllAsync(Windows.Devices.Enumeration.DeviceClass.videoCapture)。然后(函数(设备){
//将设备添加到deviceList
如果(设备长度>0){
对于(变量i=0;i
我在“if”行设置了一个调试检查点,发现了0个设备。你知道为什么吗?是否有其他方法检查和使用WinRT的视频捕获设备
注意:我用一个真正的视频捕获卡测试了我的代码,它找到了它,并且播放的非常好,所以问题就出在那些屏幕捕获软件上
另一个解决方案可能是自己实现一个实时屏幕捕获代码。因此,如果你知道如何从WinRT应用程序捕获我自己的屏幕,它可能会有所帮助
谢谢!!如果我不得不猜测的话,我认为这与正在使用的驱动程序有关。如果我是你,我会调查视频捕获驱动程序的限制。我在Usb串行驱动程序方面遇到了类似的问题。你不能使用标准的usbser.sys,你必须使用更新的WinUSB.sys。另外,确保你有视频功能包括在您的应用程序清单中。谢谢您的评论。问题是我没有使用“真实”设备捕获屏幕,我使用的是屏幕捕获模拟器驱动程序,它模拟视频捕获输入(以我的屏幕作为输入源)。因此,它不使用USB驱动程序(或者我认为它不使用)…我不知道他们使用的驱动程序,我只知道它们是在DirectShow中实现的。事实上,我在控制面板的设备管理器中找不到模拟设备。