Original publication date: December 21, 2022
Added
-
New callback for sign interpretation.
-
New callbacks in
IMeetingSignInterpretationControllerEvent
virtual void OnTalkPrivilegeChanged(bool hasPrivilege) = 0;
-
-
New interface to allow everyone in the waiting room to be in the meeting.
-
New interface in
IMeetingWaitingRoomController
:virtual SDKError AdmitAllToMeeting() = 0;
-
-
New interface to support transfer an ongoing meeting or webinar from another logged-in in Zoom device. This is currently a beta feature. See upcoming release notes for details.
-
New enum
SDKNotificationServiceStatus
typedef enum { SDK_Notification_Service_None = 0, SDK_Notification_Service_Starting, SDK_Notification_Service_Started, SDK_Notification_Service_StartFailed, SDK_Notification_Service_Closed, } SDKNotificationServiceStatus;
-
New struct
InMeetingDeviceInfo
struct InMeetingDeviceInfo { int nIndex;///<index const wchar_t* deviceName;///<device name const wchar_t* meetingTopic;///<meeting topic UINT64 meetingNumber;///<meeting number InMeetingDeviceInfo() { nIndex = -1; deviceName = NULL; meetingTopic = NULL; meetingNumber = 0; } };
-
New callback in
IAuthServiceEvent
virtual void onNotificationServiceStatus(SDKNotificationServiceStatus status) = 0;
-
New interfaces in
IAuthService
virtual void EnableAutoRegisterNotificationServiceForLogin(bool bEnable) = 0; virtual SDKError RegisterNotificationService(const wchar_t* accessToken) = 0; virtual SDKError UnregisterNotificationService() = 0; virtual INotificationServiceHelper* GetNotificationServiceHelper() = 0;
-
New classes
INotificationServiceEvent
andINotificationServiceHelper
class INotificationServiceEvent { public: virtual void onMeetingDeviceListChanged(IList<InMeetingDeviceInfo>* pDeviceList) = 0; virtual void onTransferMeetingStatus(bool bSuccess) = 0; }; class INotificationServiceHelper { public: virtual ~INotificationServiceHelper () {} virtual SDKError SetEvent(INotificationServiceEvent* pEvent) = 0; virtual bool IsTransferMeetingEnabled() = 0; virtual SDKError TransferMeeting(int nIndex) = 0; };
-
-
New enums for the new supported languages.
-
New enum elements in
SDK_LANGUAGE_ID
enum SDK_LANGUAGE_ID { LANGUAGE_Indonesian, LANGUAGE_Dutch };
-
-
New interfaces to support Immersive Scene in customized user interfaces.
-
New interface in
IMeetingService
virtual ICustomImmersiveController* GetMeetingImmersiveController() = 0;
-
New interfaces in
ICustomizedUIMgr
virtual SDKError CreateImmersiveContainer(ICustomizedImmersiveContainer** ppContainer, HWND hParentWnd, RECT rc) = 0; virtual SDKError DestroyImmersiveContainer() = 0;
-
New callback in
ICustomizedUIMgrEvent
virtual void onImmersiveContainerDestroyed() = 0;
-
New enum
CustomImmersiveTemplateType
enum CustomImmersiveTemplateType { CustomImmersiveTemplateType_Default, CustomImmersiveTemplateType_CustomImage, CustomImmersiveTemplateType_MyVideo };
-
New struct
SeatPlacementInfo
&CustomImmersiveLayoutData
struct SeatPlacementInfo { unsigned int seat_id; RECT position; };
struct CustomImmersiveLayoutData { bool is_seat_free; unsigned int seat_id; unsigned int user_id; unsigned int z_order; RECT position; }; -
New classes
ICustomImmersiveTemplate
class ICustomImmersiveTemplate { public: virtual const wchar_t* getTemplateName() = 0; virtual const void* getThumbnailBitmap() = 0; virtual unsigned int getCapacity() = 0; virtual bool isTemplateReady() = 0; virtual bool isSupportFreeSeat() = 0; virtual SIZE getCanvasSize() = 0; virtual IList<SeatPlacementInfo>* getSeatList() = 0; virtual CustomImmersiveTemplateType getType() = 0; virtual ~ICustomImmersiveTemplate() {} };
-
New classes
ICustomImmersiveCtrlEvent
class ICustomImmersiveCtrlEvent { public: virtual void onImmersiveStatusChanged(bool bOn) = 0; virtual void onSelectedImmersiveTemplateChanged(ICustomImmersiveTemplate* immersiveTemplate) = 0; virtual void onImmersiveSeatLayoutUpdated(IList<CustomImmersiveLayoutData>* seatList) = 0; virtual void onTemplateDownloadProgress(ICustomImmersiveTemplate* immersiveTemplate, unsigned int progress) = 0; virtual void onTemplateDownloadEnded(ICustomImmersiveTemplate* immersiveTemplate, bool bSuccess) = 0; virtual void onTemplateThumbnailsDownloadEnded(bool bSuccess) = 0; virtual ~ICustomImmersiveCtrlEvent() {} };
-
New classes
ICustomImmersiveController
class ICustomImmersiveController { public: virtual SDKError SetEvent(ICustomImmersiveCtrlEvent* pEvent) = 0; virtual SDKError isSupportImmersive(bool& bSupport) = 0; virtual SDKError isImmersiveViewOn(bool& bOn) = 0; virtual SDKError downloadTemplateThumbnails() = 0; virtual SDKError isTemplateThumbnailsReady(bool& bReady) = 0; virtual IList<ICustomImmersiveTemplate*>* getTemplates() = 0; virtual SDKError downloadTemplate(ICustomImmersiveTemplate* immersiveTemplate) = 0; virtual SDKError canStartImmersiveView(ICustomImmersiveTemplate* immersiveTemplate, bool& bCan) = 0; virtual SDKError startImmersiveView(ICustomImmersiveTemplate* immersiveTemplate) = 0; virtual SDKError changeTemplate(ICustomImmersiveTemplate* immersiveTemplate) = 0; virtual SDKError endImmersiveView() = 0; virtual ICustomImmersiveTemplate* getCurrentTemplate() = 0; virtual SDKError canUserShowInImmersiveView(unsigned int userID, bool& bCan) = 0; virtual SDKError assignUser(unsigned int userID, unsigned int seatID) = 0; virtual SDKError putUserToFreeSeat(unsigned int userID, RECT pos) = 0; virtual SDKError removeUser(unsigned int userID) = 0; virtual SDKError isUserInImmersiveView(unsigned int userID, bool& bIn) = 0; virtual SDKError addCustomImageTemplate(const wchar_t* filePath, ICustomImmersiveTemplate** immersiveTemplate) = 0; virtual SDKError removeCustomImageTemplate(ICustomImmersiveTemplate* immersiveTemplate) = 0; virtual ~ICustomImmersiveController() {} };
-
New classes
ICustomizedImmersiveContainerEvent
class ICustomizedImmersiveContainerEvent { public: virtual void onWindowMsgNotification(UINT uMsg, WPARAM wParam, LPARAM lParam) = 0; virtual ~ICustomizedImmersiveContainerEvent() {}; };
-
New classes
ICustomizedImmersiveContainer
class ICustomizedImmersiveContainer { public: virtual SDKError SetEvent(ICustomizedImmersiveContainerEvent* pEvent) = 0; virtual SDKError RepositionContainer(RECT rc, HWND hParentWnd = nullptr) = 0; virtual SDKError ShowWaitingArea() = 0; virtual SDKError HideWaitingArea() = 0; virtual ~ICustomizedImmersiveContainer() {} };
-
Fixed
-
Fixed an issue where the breakout room creator info could be gotten before receiving the callback
onHasCreatorPermission
. -
Fixed an issue with selecting
lipSynAvatar
item in the meeting, but the 3D avatar was not updated. -
Fixed an issue where attendees were able to receive
OnSignInterpreterListChanged
when the meeting host stops sign interpretation. -
Fixed an issue where the interface
hideCloudWhiteboardShareButton
couldn’t work. -
Fixed the user interface displaying issue.
-
Fixed an issue with calling
GetLiveAnswerName
interface and the return value was incorrect. -
Fixed an issue where the video preview showed a black screen after ending a meeting.
-
Fixed an issue where attendees couldn’t receive a callback when others’ raw-live-streaming-status changed.
-
Fixed an issue where the SDK would crash after cleanup on meeting with Zoom default user interface and switch to customized user interface meeting.
-
Fixed an issue with starting direct share, when the connecting window would appear.