Added

New interfaces and callbacks to support cloud recording: 

New interfaces in IZoomVideoSDKRecordingHelper:

virtual ZoomVideoSDKErrors canStartRecording() = 0;
virtual ZoomVideoSDKErrors startCloudRecording() = 0;
virtual ZoomVideoSDKErrors stopCloudRecording() = 0;
virtual ZoomVideoSDKErrors pauseCloudRecording() = 0;
virtual ZoomVideoSDKErrors resumeCloudRecording() = 0;
virtual ZoomVideoSDKErrors getCloudRecordingStatus(RecordingStatus& record_status) = 0;

New callback in IZoomVideoSDKDelegate:

virtual void onCloudRecordingStatus(RecordingStatus status) = 0;

New status in RecordingStatus:

Recording_Start
Recording_Stop
Recording_DiskFull
Recording_Pause    

New interface in IZoomVideoSDK:

virtual IZoomVideoSDKRecordingHelper* getRecordingHelper() = 0;

New interfaces and callbacks to support the command channel:

New interface in IZoomVideoSDKCmdChannel:

virtual ZoomVideoSDKErrors sendCommand(IZoomVideoSDKUser* receiver, const zchar_t* strCmd) = 0;

New callbacks in IZoomVideoSDKDelegate:

virtual void onCommandReceived(IZoomVideoSDKUser* sender, const zchar_t* strCmd) = 0;
virtual void onCommandChannelConnectResult(bool isSuccess) = 0;

New interface in IZoomVideoSDK:

virtual IZoomVideoSDKCmdChannel* getCmdChannel() = 0;

New parameter to support customized close times when a session is idle:

New parameter in ZoomVideoSDKSessionContext:

unsigned int sessionIdleTimeoutMins

New interfaces to control the local camera:

New interface in IZoomVideoSDKVideoHelper:

virtual ZoomVideoSDKErrors canControlCamera(bool& bCan) = 0;
virtual ZoomVideoSDKErrors turnCameraLeft(unsigned int range = 50) = 0;
virtual ZoomVideoSDKErrors turnCameraRight(unsigned int range = 50) = 0;
virtual ZoomVideoSDKErrors turnCameraUp(unsigned int range = 50) = 0;
virtual ZoomVideoSDKErrors turnCameraDown(unsigned int range = 50) = 0;
virtual ZoomVideoSDKErrors zoomCameraIn(unsigned int range = 50) = 0;
virtual ZoomVideoSDKErrors zoomCameraOut(unsigned int range = 50) = 0;

New interfaces and callbacks to control a remote camera:

New interface in IZoomVideoSDKRemoteCameraControlHelper:

virtual ZoomVideoSDKErrors requestControlRemoteCamera() = 0;
virtual ZoomVideoSDKErrors giveUpControlRemoteCamera() = 0;
virtual ZoomVideoSDKErrors turnLeft(unsigned int range = 50) = 0;
virtual ZoomVideoSDKErrors turnRight(unsigned int range = 50) = 0;
virtual ZoomVideoSDKErrors turnUp(unsigned int range = 50) = 0;
virtual ZoomVideoSDKErrors turnDown(unsigned int range = 50) = 0;
virtual ZoomVideoSDKErrors zoomIn(unsigned int range = 50) = 0;
virtual ZoomVideoSDKErrors zoomOut(unsigned int range = 50) = 0;

New callbacks in IZoomVideoSDKDelegate:

virtual void onCameraControlRequestResult(IZoomVideoSDKUser* pUser, bool isApproved) = 0;
virtual void onCameraControlRequestReceived(IZoomVideoSDKUser* pUser, ZoomVideoSDKCameraControlRequestType requestType, IZoomVideoSDKCameraControlRequestHandler* pCameraControlRequestHandler) = 0;

New interface in IZoomVideoSDKUser:

virtual IZoomVideoSDKRemoteCameraControlHelper* getRemoteCameraControlHelper() = 0;

New interface in IZoomVideoSDKCameraControlRequestHandler:

virtual ZoomVideoSDKErrors approve() = 0;
virtual ZoomVideoSDKErrors decline() = 0;

New interfaces to support sharing a second camera:

New interface in IZoomVideoSDKShareHelper:

virtual ZoomVideoSDKErrors startShare2ndCamera(const zchar_t* cameraID) = 0;
virtual ZoomVideoSDKErrors subscribeMyShareCamera(IZoomVideoSDKRawDataPipeDelegate* data_handler) = 0;
virtual ZoomVideoSDKErrors unSubscribeMyShareCamera() = 0;

New callback to notify a user that they are asked to unmute their audio by the host:

New callback in IZoomVideoSDKDelegate:

virtual void onHostAskUnmute() = 0;

Enhancements

  • Improved role management. All users now require a defined role_type:

    • role_type=1 — The user is the host. Only one user should have this role. If they leave the session and rejoin, they will regain host privileges.

    • role_type=0 — The user is an attendee. Other users should be assigned to this role.

  • The user_identity field is now optional.

  • Updated API documentation.

Fixed

  • “Context” typo in the demo application.

  • Bug when joining a livestream session and cannot start video.