Original publication date: November 22, 2022
Added
-
New interface to the control waiting room configuration for the customized user interface.
-
New interface in
MobileRTCWaitingRoomService.h
- (void)onCustomWaitingRoomDataUpdated:(MobileRTCCustomWaitingRoomData *_Nullable)data; - (MobileRTCSDKError)requestCustomWaitingRoomData;
-
New enum in
MobileRTCWaitingRoomService.h
typedef NS_ENUM(NSUInteger, MobileRTCWaitingRoomLayoutType) { MobileRTCWaitingRoomLayoutType_Default = 0, MobileRTCWaitingRoomLayoutType_Logo, MobileRTCWaitingRoomLayoutType_Video, };
-
New enum in
MobileRTCWaitingRoomService.h
typedef NS_ENUM(NSUInteger, MobileRTCCustomWaitingRoomDataStatus) { MobileRTCCustomWaitingRoomDataStatus_Init, MobileRTCCustomWaitingRoomDataStatus_Downloading, MobileRTCCustomWaitingRoomDataStatus_Download_OK, MobileRTCCustomWaitingRoomDataStatus_Download_Fail, };
-
New interface in
MobileRTCWaitingRoomService.h
@interface MobileRTCCustomWaitingRoomData : NSObject @property (nonatomic, retain) NSString * _Nullable title; @property (nonatomic, retain) NSString * _Nullable descriptionString; @property (nonatomic, retain) NSString * _Nullable logoPath; @property (nonatomic, retain) NSString * _Nullable videoPath; @property (nonatomic, assign) MobileRTCWaitingRoomLayoutType type; @property (nonatomic, assign) MobileRTCCustomWaitingRoomDataStatus status; @end
-
-
New interface to allow non-host SDK participants to manage (start or stop) live streaming.
-
New interface in
MobileRTCMeetingService+InMeeting.h
- (BOOL)isRawLiveStreamSupported; - (MobileRTCSDKError)canStartRawLiveStream; - (MobileRTCSDKError)requestRawLiveStream:(nonnull NSString *)broadcastURL; - (MobileRTCSDKError)removeRawLiveStreamPrivilege:(NSUInteger)userId; - (NSArray<MobileRTCRawLiveStreamInfo*> * _Nullable)getRawLiveStreamingInfoList; - (NSArray <NSNumber*> * _Nullable)getRawLiveStreamPrivilegeUserList;
-
New callback in
MobileRTCMeetingDelegate.h
- (void)onRawLiveStreamPrivilegeChanged:(BOOL)hasPrivilege; - (void)onRawLiveStreamPrivilegeRequestTimeout; - (void)onUserRawLiveStreamPrivilegeChanged:(NSUInteger)userId hasPrivilege:(bool)hasPrivilege; - (void)onRawLiveStreamPrivilegeRequested:(MobileRTCRequestRawLiveStreamPrivilegeHandler*_Nullable)handler; - (void)onUserRawLiveStreamingStatusChanged:(NSArray<MobileRTCRawLiveStreamInfo*>*_Nullable)liveStreamList;
-
New callback in
MobileRTCRequestRawLiveStreamPrivilegeHandler.h
- (NSString *)getRequestId; - (NSUInteger)getRequesterId; - (NSString *)getRequesterName; - (NSString *)getBroadcastUrl; - (BOOL)grantRawLiveStreamPrivilege; - (BOOL)denyRawLiveStreamPrivilege;
-
New interface in
MobileRTCRawLiveStreamInfo.h
@property(nonatomic, assign, readonly) NSUInteger userId; @property(nonatomic, copy, readonly) NSString * _Nullable broadcastUrl;
-
New interface in
MobileRTCMeetingService+User.h
- (BOOL)isRawLiveStreaming:(NSUInteger)userID; - (BOOL)hasRawLiveStreamPrivilege:(NSUInteger)userID;
-
-
New error codes.
-
New enum in
MobileRTCConstants.h
typedef NS_ENUM(NSUInteger, MobileRTCSDKError) { MobileRTCSDKError_Success = 0,///<success. MobileRTCSDKError_NoImpl,///<this feature is currently invalid. MobileRTCSDKError_WrongUsage,///<incorrect usage of the feature. MobileRTCSDKError_InvalidParameter,///<wrong parameter. MobileRTCSDKError_ModuleLoadFailed,///<loading module failed. MobileRTCSDKError_MemoryFailed,///<no memory is allocated. MobileRTCSDKError_ServiceFailed,///<internal service error. MobileRTCSDKError_Uninitialize,///<not initialized before the usage. MobileRTCSDKError_Unauthentication,///<not authorized before the usage. MobileRTCSDKError_NoRecordingInprocess,///<no recording in process. MobileRTCSDKError_TranscoderNoFound,///<transcoder module is not found. MobileRTCSDKError_VideoNotReady,///<the video service is not ready. MobileRTCSDKError_NoPermission,///<no permission. MobileRTCSDKError_Unknown,///<unknown error. MobileRTCSDKError_OtherSdkInstanceRunning,///<the other instance of the SDK is in process. MobileRTCSDKError_InternalError,///<SDK internal error. MobileRTCSDKError_NoAudiodeviceIsFound,///<no audio device found. MobileRTCSDKError_NoVideoDeviceIsFound,///<no video device found. MobileRTCSDKError_TooFrequentCall,///<API calls too frequently. MobileRTCSDKError_FailAssignUserPrivilege, ///<user can't be assigned with new privilege. MobileRTCSDKError_MeetingDontSupportFeature,///<the current meeting doesn't support the feature. MobileRTCSDKError_MeetingNotShareSender,///<the current user is not the presenter. MobileRTCSDKError_MeetingYouHaveNoShare,///<there is no sharing. MobileRTCSDKError_MeetingViewtypeParameterIsWrong, ///<incorrect viewtype parameters. MobileRTCSDKError_MeetingAnnotationIsOff, ///<annotation is disabled. MobileRTCSDKError_SettingOsDontSupport, ///<current OS doesn't support the setting. MobileRTCSDKError_EmailLoginIsDisabled, ///<email login is disable MobileRTCSDKError_HardwareNotMeetForVb, ///<computer doesn't meet the minimum requirements to use virtual background feature. MobileRTCSDKError_NeedUserConfirmRecordDisclaimer, ///<need process disclaimer. MobileRTCSDKError_NoShareData,///<there is no raw data of sharing. MobileRTCSDKError_ShareCannotSubscribeMyself, MobileRTCSDKError_NotInMeeting, };
-
-
New interface to support 3D avatars in the Meeting SDK.
-
New interface in
MobileRTCMeetingService+Avatar.
@interface MobileRTC3DAvatarImageInfo : NSObject @property (nonatomic, assign) BOOL isSelected; @property (nonatomic, copy) NSString *imagePath; @property (nonatomic, copy) NSString *imageName; @property (nonatomic, assign) NSInteger index; @end
-
New interface in
MobileRTCMeetingService+Avatar.h
- (BOOL)is3DAvatarSupportedByDevice; - (BOOL)is3DAvatarEnabled; - (NSArray <MobileRTC3DAvatarImageInfo* >*)get3DAvatarImageList; - (MobileRTCSDKError)set3DAvatarImage:(MobileRTC3DAvatarImageInfo*)imageInfo;
-
New callback in
MobileRTCMeetingDelegate.h
- (void)on3DAvatarItemThumbnailsDownloaded; - (void)on3DAvatarItemDataDownloading:(int)index; - (void)on3DAvatarItemDataDownloaded:(bool)success andIndex:(int)index;
-
-
New interface to support features which allow for American Sign Language (ASL) interpreters to be defined by the host and pinned to a certain predictable location for all meeting participants.
-
New interface in
MobileRTCMeetingService+Interpretation.h
@interface MobileRTCSignInterpreterLanguage : NSObject @property (copy, nonatomic, nullable) NSString * languageName; @property (copy, nonatomic, nullable) NSString * languageID; @end @interface MobileRTCSignInterpreter : NSObject @property (assign, nonatomic) NSUInteger userID; @property (assign, nonatomic) BOOL available; @property (copy, nonatomic, nullable) NSString * userName; @property (copy, nonatomic, nullable) NSString * email; @property (copy, nonatomic, nullable) NSString * languageName; @property (copy, nonatomic, nullable) NSString * languageID; @end - (BOOL)isSignInterpretationEnabled; - (MobileRTCSignInterpretationStatus)getSignInterpretationStatus; - (BOOL)isSignInterpreter; - (MobileRTCSignInterpreterLanguage*_Nullable)getSignInterpretationLanguageInfoByID:(NSString *_Nullable)signLanguageID; - (NSArray<MobileRTCSignInterpreterLanguage*> *_Nullable)getAvailableSignLanguageInfoList; - (NSArray<MobileRTCSignInterpreterLanguage*> *_Nullable)getAllSupportedSignLanguageInfoList; - (NSArray<MobileRTCSignInterpreter*> *_Nullable)getSignInterpreterList; - (MobileRTCSDKError)addSignInterpreter:(NSUInteger)userID signLanId:(NSString *_Nullable)signLanID; - (MobileRTCSDKError)removeSignInterpreter:(NSUInteger)userID; - (MobileRTCSDKError)modifySignInterpreter:(NSUInteger)userID signLanId:(NSString *_Nullable)signLanID; - (BOOL)canStartSignInterpretation; - (MobileRTCSDKError)startSignInterpretation; - (MobileRTCSDKError)stopSignInterpretation; - (MobileRTCSDKError)requestSignLanuageInterpreterToTalk:(NSUInteger)userID allowToTalk:(BOOL)allowToTalk; - (BOOL)isAllowSignLanuageInterpreterToTalk:(NSUInteger)userID; - (NSString *_Nullable)getSignInterpreterAssignedLanID; - (MobileRTCSDKError)joinSignLanguageChannel:(NSString *_Nullable)signLanID; - (MobileRTCSDKError)leaveSignLanguageChannel;
-
New enum in
MobileRTCConstants.h
typedef NS_ENUM(NSInteger,MobileRTCSignInterpretationStatus) { MobileRTCSignInterpretationStatus_Initial, //<The initial status MobileRTCSignInterpretationStatus_Started, //<sign interpretation started. MobileRTCSignInterpretationStatus_Stopped, //<sign interpretation stopped. };
-
New callback in
MobileRTCMeetingDelegate.h
- (void)onSignInterpretationStatusChange:(MobileRTCSignInterpretationStatus)status; - (void)onSignInterpreterListChanged; - (void)onSignInterpreterRoleChanged; - (void)onSignInterpreterLanguageChanged; - (void)onAvailableSignLanguageListUpdated:(NSArray<MobileRTCSignInterpreterLanguage*> *_Nonnull)availableSignLanguageList; - (void)onRequestSignInterpreterToTalk; - (void)onDisallowSignInterpreterToTalk;
-
-
New callback for switching breakout rooms (BO).
-
New callback in
MobileRTCMeetingDelegate.h
- (void)onBOSwitchRequestReceived:(NSString*_Nullable)newBOName newBOID:(NSString *_Nullable)newBOID;
-
-
New interface to share audio.
-
New interface in
MobileRTCMeetingService+AppShare.h
- (void)setShareAudio:(BOOL)enableAudio; - (BOOL)isShareAudio; - (BOOL)isDeviceSharing;
-
Changed
-
The return type of interface
muteMyVideo
fromMobileRTCVideoError
toMobileRTCSDKError
.
Fixed
-
Issue where the emoji list was empty in the Zoom default user interface.
-
Issue where the
meetingType
should bewebinar
instead ofbreakout room
when starting a webinar meeting and receiving the callbackonMeetingParameterNotification
. -
Issue where meeting participants did not receive the callback
onInterpreterActiveLanguageChanged
in customized user interface mode when host added themself as an interpreter and started interpreting. -
Issue where the callback
onSinkMeetingAudioRequestUnmuteByHost
couldn't be received in the Zoom default user interface.
Deprecated
-
Delete property in
MobileRTCMeetingUserInfo.h
@property (nonatomic, assign) NSInteger unread;
-
Remove interface in
MobileRTCMeetingService+User
- (int)getUnreadChatCountByUserId:(int)userId
-
Delete enum in
MobileRTCConstants.h
typedef NS_ENUM(NSUInteger, MobileRTCVideoError) { MobileRTCVideoError_Success = 0, MobileRTCVideoError_CameraPermissionDenied = 1, MobileRTCVideoError_CannotUnmuteMyVideo = 3, };