Remote camera control
The Video SDK for Windows lets one user request control of another user's camera by panning, tilting, and zooming it remotely, which is useful for remote-assistance and inspection workflows. You control a specific user's camera through that user's IZoomVideoSDKRemoteCameraControlHelper, obtained with getRemoteCameraControlHelper.
IZoomVideoSDKRemoteCameraControlHelper* pControlHelper = pUser->getRemoteCameraControlHelper();
Request control of a remote camera
Before you can move a camera, call requestControlRemoteCamera. The target user receives onCameraControlRequestReceived and must approve the request. When they respond, the SDK calls onCameraControlRequestResult with whether the request was approved. For details, see Camera control requests.
pControlHelper->requestControlRemoteCamera();
Pan, tilt, and zoom
Once your request is approved, move the camera with turnLeft, turnRight, turnUp, turnDown, zoomIn, and zoomOut. Each method takes an optional range from 10 to 100 that controls how far the camera moves, defaulting to 50.
// Pan right by the default amount.
pControlHelper->turnRight();
// Tilt up by a smaller amount.
pControlHelper->turnUp(20);
// Zoom in.
pControlHelper->zoomIn();
Give up control
When you're finished, release the camera with giveUpControlRemoteCamera.
pControlHelper->giveUpControlRemoteCamera();
Respond to a control request
When another user requests control of the local user's camera, the SDK calls onCameraControlRequestReceived and passes an IZoomVideoSDKCameraControlRequestHandler. Call approve to grant control or decline to refuse.
void CExampleListener::onCameraControlRequestReceived(IZoomVideoSDKUser* pUser, ZoomVideoSDKCameraControlRequestType requestType, IZoomVideoSDKCameraControlRequestHandler* pCameraControlRequestHandler)
{
// After confirming with the local user:
pCameraControlRequestHandler->approve();
// Or, to refuse:
// pCameraControlRequestHandler->decline();
}