Listen for video events

The Video SDK for Linux fires video-related callbacks through IZoomVideoSDKDelegate. Implement the callbacks below to react to video state changes in your session. For details on setting up a delegate, see callback events.

User video status

onUserVideoStatusChanged fires when a user starts or stops their video.

void CExampleListener::onUserVideoStatusChanged(IZoomVideoSDKVideoHelper* pVideoHelper, IVideoSDKVector<IZoomVideoSDKUser*>* userList)
{
    IZoomVideoSDKUser* pUser;
    int count = userList->GetCount();
    for (int i = 0; i < count; i++)
    {
        pUser = userList->GetItem(i);
        bool isVideoOn = pUser->getVideoStatus().isOn;
    }
}

Spotlight changes

onSpotlightVideoChanged fires when the set of spotlighted users changes. For the spotlight controls, see Spotlight a user.

void CExampleListener::onSpotlightVideoChanged(IZoomVideoSDKVideoHelper* pVideoHelper, IVideoSDKVector<IZoomVideoSDKUser*>* userList)
{
    // userList contains the currently spotlighted users.
}

Multi-camera stream status

onMultiCameraStreamStatusChanged fires when a user enables, mutes, or disables an additional camera stream. The callback passes the stream's status, the user, and the IZoomVideoSDKRawDataPipe for that stream. For details, see Multiple camera support.

void CExampleListener::onMultiCameraStreamStatusChanged(ZoomVideoSDKMultiCameraStreamStatus status, IZoomVideoSDKUser* pUser, IZoomVideoSDKRawDataPipe* pVideoPipe)
{
    // Subscribe to or unsubscribe from pVideoPipe based on status.
}

Alpha channel mode

onVideoAlphaChannelStatusChanged fires when alpha channel mode turns on or off. For details, see Raw video with alpha channel.

void CExampleListener::onVideoAlphaChannelStatusChanged(bool isAlphaModeOn)
{
    // Respond to the alpha channel mode change.
}

Camera control requests

When a user requests control of the local user's camera, the SDK calls onCameraControlRequestReceived with a handler you use to approve or decline. When a control request you sent is answered, the SDK calls onCameraControlRequestResult. For details, see Remote camera control.

void CExampleListener::onCameraControlRequestReceived(IZoomVideoSDKUser* pUser, ZoomVideoSDKCameraControlRequestType requestType, IZoomVideoSDKCameraControlRequestHandler* pCameraControlRequestHandler)
{
    // Call pCameraControlRequestHandler->approve() or decline().
}
void CExampleListener::onCameraControlRequestResult(IZoomVideoSDKUser* pUser, bool isApproved)
{
    // isApproved indicates whether your request was granted.
}