Added

  • New interface to control waiting room configuration for the customized user interface.

    • New interface class named ZoomSDKCustomWaitingRoomData defined in ZoomSDKWaitingRoomController.h

      @property (copy, nonatomic, readonly) NSString* title;
      @property (copy, nonatomic, readonly) NSString* dataDescription;
      @property (copy, nonatomic, readonly) NSString* logoPath;
      @property (copy, nonatomic, readonly) NSString* videoPath;
      @property (assign, nonatomic, readonly) ZoomSDKWaitingRoomLayoutType type;
      @property (assign, nonatomic, readonly) ZoomSDKCustomWaitingRoomDataStatus status;
    • New interface class named ZoomSDKWaitingRoomDataDownloadHandler defined in ZoomSDKWaitingRoomController.h

      -(void)retry;
      -(void)ignore;

    • New callback in ZoomSDKWaitingRoomDelegate

      -(void)onCustomWaitingRoomDataUpdated:(ZoomSDKCustomWaitingRoomData*)bData handle:(ZoomSDKWaitingRoomDataDownloadHandler*)handle;
    • New interface in ZoomSDKWaitingRoomController

      -(ZoomSDKError)requestCustomWaitingRoomData;
    • New Enum named ZoomSDKWaitingRoomLayoutType

      ZoomSDKWaitingRoomLayoutType_Default,
      ZoomSDKWaitingRoomLayoutType_Logo, 
      ZoomSDKWaitingRoomLayoutType_Video,
    • New Enum named ZoomSDKCustomWaitingRoomDataStatus

      ZoomSDKCustomWaitingRoomDataStatus_Init,
      ZoomSDKCustomWaitingRoomDataStatus_Downloading, 
      ZoomSDKCustomWaitingRoomDataStatus_Download_OK, 
      ZoomSDKCustomWaitingRoomDataStatus_Download_Failed, 
  • New interface to allow non-host SDK participant to manage(start or stop) "live streaming".

    • New interfaces in ZoomSDKLiveStreamHelper

      -(BOOL)isRawLiveStreamSupported;
      -(ZoomSDKError)canStartRawLiveStream;
      -(ZoomSDKError)requestRawLiveStream:(NSString*)broadcastURL;
      -(ZoomSDKError)removeRawLiveStreamPrivilege:(unsigned int)userID;
      -(NSArray<ZoomSDKRawLiveStreamInfo*>*)getRawLiveStreamingInfoList;
      -(NSArray<NSNumber*>*)getRawLiveStreamPrivilegeUserList;
    • New interface class named ZoomSDKRawLiveStreamInfo defined in ZoomSDKLiveStreamHelper.h

      @property(nonatomic, assign, readonly) unsigned int userID;
      @property(nonatomic, copy, readonly) NSString *broadcastUrl;
    • New interface class named ZoomSDKRequestRawLiveStreamPrivilegeHandler defined in ZoomSDKLiveStreamHelper.h

      @property(nonatomic, copy, readonly) NSString *requestId;
      @property(nonatomic, assign, readonly) unsigned int requesterId;
      @property(nonatomic, copy, readonly) NSString *requesterName;
      @property(nonatomic, copy, readonly) NSString *broadcastUrl;
      -(ZoomSDKError)grantRawLiveStreamPrivilege;
      -(ZoomSDKError)denyRawLiveStreamPrivilege;
    • New callback in ZoomSDKLiveStreamHelperDelegate

      -(void)onRawLiveStreamPrivilegeChanged:(BOOL)bHasPrivilege;
      -(void)onRawLiveStreamPrivilegeRequestTimeout;
      -(void)onUserRawLiveStreamPrivilegeChanged:(unsigned int)userID hasPrivilege:(BOOL)bHasPrivilege;
      -(void)onRawLiveStreamPrivilegeRequested:(ZoomSDKRequestRawLiveStreamPrivilegeHandler*)handler;
      -(void)onUserRawLiveStreamingStatusChanged:(NSArray<ZoomSDKRawLiveStreamInfo*>*)liveStreamList;
    • New interfaces in ZoomSDKUserInfo

      - (BOOL)isRawLiveStreaming
      - (BOOL)hasRawLiveStreamPrivilege
  • New interfaces to allow the hardware acceleration setting for screen sharing.

    • New interface in ZoomSDKShareScreenSetting:

      - (ZoomSDKError)enableHardwareAcceleratedVideoSharing:(BOOL)bEnable;
      - (BOOL)isVideoSharingHardwareAccelerated;
  • New interface to support features which allow for sign language interpreters, American Sign Language (ASL) interpreters, to be defined by the host, and pinned to a certain predictable location for all meeting participants.

    • New interface class named ZoomSDKSignInterpretationController defined in ZoomSDKSignInterpretationController.h

      @property(nonatomic,assign)id<ZoomSDKSignInterpretationControllerDelegate>  delegate;
      -(BOOL)isSignInterpretationEnabled;
      -(ZoomSDKSignInterpretationStatus)getSignInterpretationStatus;
      -(BOOL)isSignInterpreter;
      -(ZoomSDKSignInterpretationLanguageInfo*)getSignInterpretationLanguageInfoByID:(NSString *)signLanguageID;
      -(NSArray<ZoomSDKSignInterpretationLanguageInfo*> *)getAvailableSignLanguageInfoList;
      -(NSArray<ZoomSDKSignInterpretationLanguageInfo*> *)getAllSupportedSignLanguageInfoList;
      -(NSArray<ZoomSDKSignInterpreter*> *)getSignInterpreterList;
      -(ZoomSDKError)addSignInterpreter:(unsigned int)userID signLanguageId:(NSString *)signLanguageId;
      -(ZoomSDKError)removeSignInterpreter:(unsigned int)userID;
      -(ZoomSDKError)modifySignInterpreter:(unsigned int)userID signLanguageId:(NSString *)signLanguageId;
      -(BOOL)canStartSignInterpretation;
      -(ZoomSDKError)startSignInterpretation;
      -(ZoomSDKError)stopSignInterpretation;
      -(ZoomSDKError)requestSignLanuageInterpreterToTalk:(unsigned int)userID allowToTalk:(BOOL)allowToTalk;
      -(BOOL)canSignLanguageInterpreterTalk:(unsigned int)userID;
      -(NSString *)getSignInterpreterAssignedLanID;
      -(ZoomSDKError)joinSignLanguageChannel:(NSString *)signLanguageId;
      -(ZoomSDKError)leaveSignLanguageChannel;
    • New interface class named ZoomSDKSignInterpretationLanguageInfo defined in ZoomSDKSignInterpretationController.h

      @property (copy,nonatomic,readonly) NSString *signLanguageID;
      @property (copy,nonatomic,readonly) NSString *signLanguageName;
    • New interface class named ZoomSDKSignInterpreter defined in ZoomSDKSignInterpretationController.h

      @property (assign,nonatomic,readonly) unsigned int userID;
      @property (copy,nonatomic,readonly) NSString *signLanguageID;
      @property (assign,nonatomic,readonly) BOOL isAvailable;
    • New protocol class named ZoomSDKSignInterpretationControllerDelegate defined in ZoomSDKSignInterpretationController.h

      -(void)onSignInterpretationStatusChanged:(ZoomSDKSignInterpretationStatus)status;
      -(void)onSignInterpreterListChanged;
      -(void)onSignInterpreterRoleChanged;
      -(void)onSignInterpreterLanguageChanged;
      -(void)onAvailableSignLanguageListUpdated:(NSArray<ZoomSDKSignInterpretationLanguageInfo*> *)availableSignLanguageList;
      -(void)onRequestSignInterpreterToTalk;
      -(void)onDisallowSignInterpreterToTalk;
    • New interface in ZoomSDKMeetingService

      -(ZoomSDKSignInterpretationController*)getSignInterpretationController;
    • New interface in ZoomSDKUserInfo

      -(BOOL)isSignLanguageInterpreter;
    • New Enum named ZoomSDKSignInterpretationStatus

      ZoomSDKSignInterpretationStatus_Initial,
      ZoomSDKSignInterpretationStatus_Started, 
      ZoomSDKSignInterpretationStatus_Stopped, 
  • New interface to support 3D avatars in the Meeting SDK.

    • New interface class named ZoomSDK3DAvatarImageInfo defined in ZoomSDKSettingService.h:

      @property(nonatomic,assign,readonly)BOOL isSelected;
      @property(nonatomic,copy,readonly)NSString* imageFilePath;
      @property(nonatomic,copy,readonly)NSString* imageName;
      @property(nonatomic,assign,readonly)int index
    • New interface class named ZoomSDKVideoLipsyncAvatarPreviewHelper defined in ZoomSDKSettingService.h :

      - (ZoomSDKError)startLipSyncAvatarPreview:(NSView *)lipsyncPreview;
      - (ZoomSDKError)stopLipSyncAvatarPreview:(NSView *)lipsyncPreview;
    • New protocol class named ZoomSDKVideoLipSyncAvatarSettingContextDelegate defined in ZoomSDKSettingService.h

      -(void)onLipSyncAvatarItemThumbnailsDownloaded;
      -(void)onLipSyncAvatarItemDataDownloading:(int)index;
      -(void)onLipSyncAvatarItemDataDownloaded:(BOOL)isSuccess index:(int)index;
    • New interface class named ZoomSDKVideoLipSyncAvatarSettingContext defined in ZoomSDKSettingService.h

      @property(nonatomic, assign)id<ZoomSDKVideoLipSyncAvatarSettingContextDelegate> delegate;
      -(BOOL)is3DAvatarSupportedByDevice;
      -(BOOL)isLipSyncAvatarEnabled;
      -(NSArray<ZoomSDK3DAvatarImageInfo*>*)getLipSyncAvatarImageList;
      -(ZoomSDKError)setLipSyncAvatarImage:(ZoomSDK3DAvatarImageInfo*)image;
      -(ZoomSDKVideoLipSyncAvatarPreviewHelper*)getLipSyncAvatarPreviewHelper;
    • New interface class named ZoomSDK3DAvatarSetting defined in ZoomSDKSettingService.h

      -(BOOL)is3DAvatarSupportedByDevice;
      -(BOOL)is3DAvatarEnabled;
      -(NSArray<ZoomSDK3DAvatarImageInfo*>*)get3DAvatarImageList;
      -(ZoomSDKError)set3DAvatarImage:(ZoomSDK3DAvatarImageInfo*)image;
      -(ZoomSDKSettingTestVideoDeviceHelper*)getTestVideoDeviceHelper;
    • New protocol class named ZoomSDK3DAvatarSettingDelegate defined in ZoomSDKSettingService.h

      -(void)on3DAvatarItemThumbnailsDownloaded;
      -(void)on3DAvatarItemDataDownloading:(int)index;
      -(void)on3DAvatarItemDataDownloaded:(BOOL)isSuccess index:(int)index;
    • New interfaces in ZoomSDKSettingService

      -(ZoomSDK3DAvatarSetting*)get3DAvatarSettings;
    • New interfaces in ZoomSDKVideoSetting

      -(BOOL)isSupportLipSyncAvatar;
      -(ZoomSDKError)enableLipSyncAvatarWhenVideoOff:(BOOL)enable;
      -(BOOL)isLipSyncAvatarWhenVideoOffEnabled;
      -(ZoomSDKVideoLipSyncAvatarSettingContext *)getLipSyncAvatarSettingContext;
    • New callback in ZoomSDKVirtualBackgroundSettingDelegate

      -(void)onVideoFilterItemThumnailsDownloaded;
      -(void)onVideoFilterItemDataDownloading:(ZoomSDKVideoEffectType)type index:(int)index;
      -(void)onVideoFilterItemDataDownloaded:(BOOL)ready type:(ZoomSDKVideoEffectType)type index:(int)index;  
  •  New interface to allow a user to choose to join another breakout room.

    • New callback in ZoomSDKNewBreakoutRoomControllerDelegate:

      -(void)onBOSwitchRequestReceived:(NSString*)newBOName newBOID:(NSString*)newBOID;
  • New interfaces for following a meeting presenter's pointer.

    • New interfaces in ZoomSDKASController:

      (ZoomSDKError)canEnableFollowPresenterPointerWhenViewShare:(unsigned int)userID bCan:(BOOL*)bCan;

Fixed

  • Issue where the function getVideoOrderList returns nil after joining a meeting and showing gallery view.

  • Issue where the click behavior is incorrect when the configuration key disableBreakoutRoomsButtonClickOriginAction is set to YES.

  • Issues that occurred when sharing related interfaces when all screens subscribed to the same user. 

  • Issue where the SDK was able to get the breakout room creator or admin before receiving the onHasCreatorPermission or onHasAdminPermission callback.

  • Issues related to the configuration keys hideChatItemInMeeting and hideCopyURLButtonWhenInviteOthers.

  • Issue where, when calling GetLocalRecordingStatus, the SDK didn’t get the status start when turning on automatic local recording of a meeting in the customized user interface mode.

  • Issue where the memory allocated for ZoomSDKUserInfo was not released when a user started a meeting but wasn’t in the meeting.

Deprecated

  • The interfaces below marked as deprecated:

    -(void)onVideoFilterItemDataDownloaded:(ZoomSDKVideoEffectType)type index:(int)index;
    -(void)onVideoFilterItemDataNeedPrepare:(ZoomSDKVideoEffectType)type index:(int)index;
    -(void)onVideoFilterItemDataReady:(BOOL)ready type:(ZoomSDKVideoEffectType)type index:(int)index;
  • The interfaces getMeetingUIType in ZoomSDKMeetingActionController marked as deprecated:

    -(ZoomSDKError)getMeetingUIType:(ScreenType)type isFullScreen:(BOOL*)bFullScreen meetingUIType:(MeetingUIType*)meetingUIType;
  • The Enums MeetingUIType marked as deprecated:

    typedef enum
    {
    //No video in the meeting.
    MeetingUIType_None,
    //Video wall mode..
    MeetingUIType_VideoWall,
    //Display the video of the active user. 
    MeetingUIType_ActiveRender,         
    }MeetingUIType;