【问题标题】:Can I use the Kinect API on a virtual machine?我可以在虚拟机上使用 Kinect API 吗?
【发布时间】:2011-09-17 20:12:12
【问题描述】:

This programming guide 暗示这是可能的,所以我想这是怎么回事。

不过,现在还不行。

主机操作系统为 Vista 64 位,VMWare Workstation 6.5.3 运行 Windows 7 Enterprise 32 位。

虚拟机上安装的软件:

  • Visual C# 2010 速成版
  • Microsoft 服务器语音平台运行时
  • Microsoft 服务器语音识别语言 - Kinect
  • 微软语音平台 SDK
  • Kinect for Windows SDK 测试版

我插入 Kinect,设备被 VM 识别,然后我运行 Sample Shape Game,但它无法识别设备。它说“插入 Kinect 并重试”,结果是错误 0x80080014,导致 http://social.msdn.microsoft.com/Forums/en-US/kinectsdknuiapi/thread/4da8c75e-9aad-4dc3-bd83-d77ab4cd2f82/ 这让我有两件事要看:

  1. 是否用专用电缆插入?是的
  2. 设备管理器中的所有 4 个条目?没有

在设备管理器中,我看到一个“Microsoft Kinect”组,其中包含 Microsoft Kinect 音频控制、Microsoft Kinect 摄像头和 Microsoft Kinect 设备,但“声音、视频和游戏控制器”下除了 VMware VMaudio 之外没有任何内容。 “Kinect USB Audio”应该在那里。

我猜还有一些我必须与 VMWare USB / 硬件选项(无论那个带有 USB / CD / HD / 软盘等图标的托盘被称为)或重新启动和( un)plugging,但我几乎没有热情了。

有什么想法吗? TIA

编辑:我意识到我的主机(Vista)系统上有一些来自 OpenKinect 的挥之不去的驱动程序。删除它们后,我在 VM 中根本看不到 Kinect。嗯。

【问题讨论】:

  • 我昨天在 Parallels Desktop 6 中尝试过,我遇到了几乎同样的问题。我在 Skeletal Example 中有“NUI Uninitialized”,对 Sample Shape 游戏没有响应。对于 Win7 Ultimate x64、Visual Studio 2010,设备管理器中有 3 个条目,但“Kinect USB 音频”不在“声音、视频和游戏控制器”中。现在我正在尝试使用 Parallels6+Win7x86 和 VMware Fusion3+Win7x64。我认为......它有两个关键问题,1.在声音中识别“Kinect USB Audio”...... 2.USB集线器问题...... vm中的win7可能会识别kinect集线器和其他USB设备。我想你也知道
  • 这里有同样的问题。我有一个 win7 x64 主机,但想在 win7 x32 VM 上进行开发。我在想先在主机上安装它可能会有所作为,但我不想弄乱我的主机。
  • @user809398 - 谨慎是好的 - 几天前我在 Windows 7 机器上安装了 VS 2010 Express / .NET 4.0 / Kinect API 来测试它,结果破坏了我现有的 VS 2008 TFS 功能.如果您在机器上安装了任何 VS 或 .NET,我肯定会轻描淡写。
  • 如果虚拟机看到设备,它就会工作。如果没有,它不会。这类似于处理 VM 中的图形加速,因为困难(从 VM mfr 的角度来看)在于让 VM 识别资源并与资源交互,而不会在出现问题时破坏驱动程序状态。无论如何,做这种事情确实打破了虚拟机的整个想法。
  • 想法:获取一个外部 USB 驱动器,在其上安装 Win7,然后启动它。驱动器很便宜,它会给你虚拟机的大部分好处。而且(对于那些将要查找并否决我发布的每个答案的 Mac 人)您可以使用真正的操作系统。

标签: kinect virtual-machine


【解决方案1】:

read.me 上有这个

虚拟机:您必须在本机 Windows 环境中运行使用 Kinect for Windows SDK Beta 构建的应用程序。 Kinect for Windows 应用程序无法在虚拟机中运行,因为 Microsoft Kinect 驱动程序和此 SDK Beta 必须安装在运行应用程序的计算机上。

【讨论】:

  • 是的,这句话我理解为暗示这是可能的 - 即,除非您在 VM 上安装驱动程序,否则您无法在 VM 上运行 Kinect 应用程序。
【解决方案2】:

我不是计算机科学家,但我认为图灵表明通用 Touring Machine 与物理硬件基本相同。我已经在同一物理硬件上的 3 或 4 个 VM 上运行了分布式 COM+,但 Kinect 设备不知何故有所不同?我根本不买那个。

【讨论】:

    【解决方案3】:

    只是为了分享(不太了解)VM Workstation 8 在主机 win 7 x64 中运行,并成功检测到并安装了 Kinect 驱动程序的来宾操作系统 Ubuntu 10.04。

    我能够使用 libfreenect(OpenKinect 项目)http://openkinect.org/wiki/Getting_Started#Manual_Build_on_Linux对其进行测试

    最好的问候,

    【讨论】:

      【解决方案4】:

      Microsoft Kinect for Windows 的最新版本(v1.6,可能稍早的版本)与“Kinect for Windows”硬件相结合,可以在虚拟机中运行。我在 MacBook Pro、Parallels 7 和 Windows 7 上运行此设置。

      请注意,Kinect for Xbox 在虚拟机中工作。

      【讨论】:

        【解决方案5】:

        我迟到了,但我们一直在运行和开发 Kinect,Windows 7 在 Mac OS X Mountain Lion 下的 VMWare 下运行。

        【讨论】:

        • 也许我应该更新这个问题 - 当时只有一个 Kinect,现在有两个,并且已经发布了很多代码。听起来好像在 VM 下运行是可行的……
        • 嗨,你能告诉我你的驾驶室是如何运行它的吗?我正在使用 Maverix 和 vmware fusion - win 7。所有驱动程序都已正确安装,但不幸的是 kinect 无法正常工作。
        【解决方案6】:

        来自 Microsoft 的This page 说“Kinect for Windows”设备应该在 VM 中工作,但“Kinect for XBOX”不工作。

        【讨论】:

          【解决方案7】:

          首先你只需要安装两个东西:

          1. libfreenect
          2. libusb

          之后你应该在该行设置三个标志为 0x02

          typedef enum {FREENECT_DEVICE_MOTOR = 0x02,FREENECT_DEVICE_CAMERA = 0x02,FREENECT_DEVICE_AUDIO = 0x02,} freenect_device_flags;

          在位于/usr/local/include/libfreenect libfreenect.h 的头文件中,但您将失去控制移动的能力,并且麦克风的使用将被禁用,因此甚至不要尝试访问它们,否则您的设备可能会在之后损坏您还应该设置

          #define PKTS_PER_XFER 32
          

          #define NUM_XFERS 6

          在 linux 行的 libfreenect/src/usb_libusb10.h 文件中 之后通过

          重建你的 libfreenect
          mkdir build 
          cd build cmake ..  
          make make install.
          

          重新启动您的虚拟系统并在虚拟机启动期间仅插入和连接 Kinect 相机设备,而不是其他 Kinect 设备。当系统启动时,您可以通过切换到您之前创建的libfreenect 构建目录并转到您运行./freenect-camtest 的 bin 来测试您的设备是否正常工作发生尝试在插入相机设备并已连接到您的虚拟机的情况下重新启动您的虚拟机。您可能需要在启动期间主动断开和连接网络摄像头与 VM 的连接以接收图像,这应该在 VM 启动时间的第一秒完成!

          适用于 Ubuntu 14.04 和 Workstation 10 和 11 和 11.1 已安装主机操作系统 Windows 7 和 Kinect SDK 以及适用于 Windows 的 Kinectdevice 此外,如果您无法从 Kinect 接收图像,您通常必须重新启动虚拟系统,这似乎很不稳定。但是,如果您一旦收到图像,请不要拔掉设备,否则您将无法获取数据,直到您重新启动连接了 Kinect 相机的虚拟系统。

          => 这实际上解决了问题,否则会丢失很多帧并且无法显示正确的图像!

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2023-04-02
            • 2015-09-25
            • 1970-01-01
            • 2017-02-04
            • 1970-01-01
            • 1970-01-01
            • 2019-06-03
            相关资源
            最近更新 更多