Running a Kinect-enabled Application on a Non-Developer Machine
Kinect for Windows 1.5, 1.6, 1.7, 1.8
Follow these recommendations to provide a great experience when running your Kinect-enabled application on a non-developer computer.
Installing Kinect Runtime Setup
A Kinect-enabled application’s setup program should install its dependencies, including Kinect Runtime Setup. The Kinect Runtime Setup executable installs the Kinect drivers and Kinect Runtime. For the best customer experience, a Kinect-enabled application setup program should chain-install the Kinect Runtime Setup.
The Kinect Runtime Setup executable is found in the \Redist subfolder of the SDK. It is a self-installing executable that installs all the required runtime software, including drivers, the Kinect runtime, and the speech runtime. Speech acoustic models other than the English version (en-us) are available in their own self-installing executables. You should include as additional chain installations the models that your application requires.
Providing Guidance to an End User
Kinect-enabled applications need to provide the right end-user guidance for the different states of KinectStatus Enumeration. Best practices for providing end-user guidance are built into the KinectSensorChooser, a component that the ShapeGame sample demonstrates. See the C++ SkeletalViewer sample to learn how KinectStatus changes are typically handled.
This is the notification that a user will typically see when they start a Kinect-enabled application that uses the KinectSensorChooser.
A Kinect is required
When a Kinect is required but can't be detected, the UI displays this notification:
The notification remains visible until the user plugs in a Kinect.
A Kinect was plugged in
When Windows has detected a newly plugged-in Kinect, the UI displays this notification:
Figure 1. A Kinect has been plugged in
During initialization, Windows performs the appropriate device discovery and enumeration to initialize the Kinect drivers.
The Kinect sensor is ready
When the driver installation completes, the UI displays this notification, which then fades out:
Figure 2. The sensor is initialized and ready for use
Once the notification fades out, the sensor is ready for use by any Kinect-enabled application.
Here is a listing of the messages (with links to more details) that KinectSensorChooser provides for the most common statuses.
KinectStatus | Message | Details on hover over "Tell me more" | More Information |
---|---|---|---|
Disconnected (with IsRequired==true) | "Required" | "This application needs a Kinect for Windows sensor in order to function. Please plug one into the PC." | Details |
Initializing | "Initializing…" | n/a | n/a |
Connected | "All set!" | n/a | n/a |
Disconnected (with IsRequired==false) | "Get the full experience by plugging in a Kinect for Windows sensor" | "This application will use a Kinect for Windows sensor if one is plugged into the PC." | Details |
Connected (but the KinectSensor.Start method raised an IOException, which means another app is using it). | "This Kinect is being used by another application." | "This application needs a Kinect for Windows sensor in order to function. However, another application is using the Kinect." | Details |
DeviceNotGenuine | "This sensor is not genuine!" | "This application needs a genuine Kinect for Windows sensor in order to function. Please plug one into the PC." | Details |
DeviceNotSupported | "Kinect for Xbox 360 not supported." | "This application needs a Kinect for Windows sensor in order to function. Please plug one into the PC." | Details |
InsufficientBandwidth | "Too many USB devices! Please unplug one or more." | "The Kinect needs the majority of the USB bandwidth of a USB Controller. If other devices are in contention for that bandwidth, the Kinect may not be able to function." | Details |
NotReady or Error | "Oops, there is an error." | "The Kinect is plugged in, but an error has occurred." | Details |
NotPowered | "Plug my power cord in!" | "The Kinect is plugged into the computer with its USB connection, but the power plug appears to be not powered." | Details |