AxMSTSCLib 如何将摄像头从客户端重定向到远程会话?

问题描述

我正在使用 AxmsTSCLib 开发用于建立 RDP 连接的 Windows 应用程序。但我不知道如何将物理摄像头从客户端重定向到远程 RDP 会话。

我尝试在 .rdp 文件添加 camerastoredirect:s:*devicestoredirect:s:*重定向摄像头,成功了,我可以通过 RDP 在远程桌面中使用摄像头。

但我在 AxmsTSCLib 库中找不到正确的属性来启用此功能

我尝试重定向所有可能的/动态设备,但它根本不起作用。代码如下:

public AxmsTSCLib.AxmsRdpClient7NotSafeForScripting oRemote;
oRemote = new AxmsTSCLib.AxmsRdpClient7NotSafeForScripting();

oRemote.AdvancedSettings7.RedirectDevices = true;
oRemote.AdvancedSettings7.RedirectPorts = true;
oRemote.AdvancedSettings7.RedirectPOSDevices = true;

MSTSCLib.imsRdpClientNonScriptable5 ocx = (MSTSCLib.imsRdpClientNonScriptable5)oRemote.Getocx();
ocx.RedirectDynamicDevices = true;
for (int i = 0; i < ocx.DeviceCollection.DeviceCount; i++)
{
    MSTSCLib.imsRdpDevice device = ocx.DeviceCollection.get_DeviceByIndex((uint)i);
    device.RedirectionState = true;
}

我在较新的 API 文档中发现 IMsRdpCameraRedirConfigCollection,需要将 imsRdpClientNonScriptable 从 5 升级到 7。

我尝试在将 Redirected 设置为 true 之前打印其计数,如下所示:

MSTSCLib.imsRdpClientNonScriptable7 ocx = (MSTSCLib.imsRdpClientNonScriptable7)oRemote.Getocx();
Logger.Log("[ocx.CameraRedirConfigCollection.Count]:" + (ocx.CameraRedirConfigCollection.Count).ToString());
for (int i = 0; i < ocx.CameraRedirConfigCollection.Count; i++)
{
    MSTSCLib.imsRdpCameraRedirConfig camera = ocx.CameraRedirConfigCollection.get_ByIndex((uint)i);
    Logger.Log("[camera.FriendlyName]:" + camera.FriendlyName);
    camera.Redirected = true;
}

不幸的是,我得到了零。

根据 Docs,看来我必须使用 AddConfig 方法将相机符号链接添加到集合中。我在这一点上卡住了,如何将相机符号链接添加imsRdpCameraRedirConfigCollection?如何获取相机符号链接

解决方法

为什么GET https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/reviews 一开始是空的?由于您没有Rescan连接相机设备。

IMsRdpCameraRedirConfigCollection

就是这样,所有连接的摄像头设备都将重定向到远程桌面。