Original publication date: March 4, 2022
Partial support for Android 12
-
This version includes partial Support for Android 12, with some known issues:
-
When there is an incoming phone call while in a meeting, after finishing the phone call and returning to the meeting, the audio in the meeting will stop working.
-
If the Android device is connected to a Bluetooth audio output, the audio might come out of the speaker instead of the Bluetooth device.
-
Added
-
Support for virtual background.
-
New interfaces in
InMeetingVirtualBackgroundController
:boolean isSupportVirtualBG(); List<IVirtualBGImageInfo> getBGImageList(); MobileRTCSDKError addBGImage(Bitmap bitmap); MobileRTCSDKError removeBGImage(IVirtualBGImageInfo bgImageInfo); MobileRTCSDKError useBGImage(IVirtualBGImageInfo bgImageInfo); MobileRTCSDKError useNoneImage();
-
New interfaces in
IVirtualBGImageInfo
:VBType getVbType(); boolean isSelect(); String getImagePath();
-
New enum in
VBType
:VB_TYPE_NONE VB_TYPE_IMAGE VB_TYPE_BLUR
-
New interface in
InMeetingService
:InMeetingVirtualBackgroundController getInMeetingVirtualBackgroundController();
-
-
The ability to notify users that the meeting has enabled auto-recording.
-
New interfaces in
MeetingParameter
:public MeetingType meeting_type; public boolean isViewOnly; public boolean is_auto_recording_local; public boolean is_auto_recording_cloud; public long meeting_number; public String meeting_topic; public String meeting_host;
-
New enum in
MeetingType
:MEETING_TYPE_NONE MEETING_TYPE_NORMAL MEETING_TYPE_WEBINAR MEETING_TYPE_BREAKOUTROOM
-
New callback in
MeetingServiceListener
:void onMeetingParameterNotification(MeetingParameter meetingParameter);
-
Triggered when the meeting status changes to
MEETING_STATUS_INMEETING
.
-
-
-
New errorCode in
`ZoomError`
:public final static int ZOOM_ERROR_AUTHRET_KEY_OR_SECRET_ERROR = 6; public final static int ZOOM_ERROR_AUTHRET_ACCOUNT_NOT_SUPPORT = 7; public final static int ZOOM_ERROR_AUTHRET_ACCOUNT_NOT_ENABLE_SDK = 8;
-
Support spotlighting in Custom UI. See
isUserVideoSpotLighted(long)
,onSpotlightVideoChanged(boolean)
, andspotLightVideo(boolean, long)
in theAPI referencefor details.
Enhanced
-
Removed restrictions on the send raw data interfaces, allowing all Developers to send raw data.
Breaking changes
-
Interface changes in
InMeetingServiceListener
:-
Renamed
onVideoOrderUpdated
toonHostVideoOrderUpdated
. -
Added a new parameter,
senderId
, toonClosedCaptionReceived(String message)
. The interface is nowonClosedCaptionReceived(String message,long senderId)
. -
The callback
onMeetingLeaveComplete
will not be triggered when the meeting is reconnecting. Reconnecting to the meeting will trigger the callbackonMeetingStatusChanged
and havemeetingStatus
MEETING_STATUS_RECONNECTING
. If your integration uses the callbackonMeetingLeaveComplete
, please migrate to using the callbackonMeetingStatusChanged
.
-
-
Interface change in
InMeetingLiveTranscriptionListener
:-
A new parameter has been added to
onLiveTranscriptionMsgReceived(String msg, MobileRTCLiveTranscriptionOperationType type)
, now the callback isonLiveTranscriptionMsgReceived(String msg,long speakerId, MobileRTCLiveTranscriptionOperationType type)
.
-
Fixed
-
Issue where the
InMeetingChatController.sendChatToUser
is not working in E2EE meetings. -
Issue where the interface
activeShareUserID()
inInMeetingService
returned a wrong userID. -
Issue where the layout of the gallery view is inconsistent compared with the Zoom client UI when there are 3 participants in the meeting.
-
Issue where the “Leave Meeting” button in the recording consent dialog is not compatible with the single Activity apps.
-
Issue where the recording consent dialog does not display in Custom UI mode with Hilt.
-
Issue where “Unknown error” is returned when joining a meeting after the user was removed.
-
Issue where inconsistent error codes returned when authenticating the SDK twice with empty key and secret.
-
Issue where the sample app shows incorrect legal notice when screen share begins in Custom UI.
-
Issue where callbacks are not being triggered after initializing the SDK.
-
Issue where sample app crashes in Custom UI when enabling the "Don't keep activities" setting.
-
Issue that allowed the coHost to be demoted in a webinar.
-
Issue where an unassigned user can not choose a breakout room (BO) when the BOs allow the attendee to choose a BO to join.
-
Issue where the coHost can call
getBODataHelper()
andgetBOAssistantHelper()
and update the comments inInMeetingBOController
.
Deleted
-
Deleted unused interfaces in
MeetingItem
:public String getMeetingTopic(); public boolean setMeetingTopic(String topic); public long getStartTime(); public boolean setStartTime(long time); public int getDurationInMinutes(); public boolean setDurationInMinutes(int duration); public String getPassword(); public void setPassword(String password); public boolean getCanJoinBeforeHost(); public void setCanJoinBeforeHost(boolean canJoinBeforeHost); public boolean isUsePmiAsMeetingID(); public boolean setUsePmiAsMeetingID(boolean usePmiAsMeetingID); public String getTimeZoneId(); public boolean setTimeZoneId(String timeZoneId); public boolean isHostVideoOff(); public void setHostVideoOff(boolean hostVideoOff); public boolean isAttendeeVideoOff(); public void setAttendeeVideoOff(boolean attendeeVideoOff); public AudioType getAudioType(); public void setAudioType(AudioType audioType); public String getThirdPartyAudioInfo(); public void setThirdPartyAudioInfo(String thirdPartyAudioInfo); public long getMeetingNumber(); public long getMeetingUniqueId(); public boolean isRecurringMeeting(); public int getRepeatType(); public boolean setRepeatType(int type); public long getRepeatEndTime(); public boolean setRepeatEndTime(long time); public String getMeetingId(); public boolean isPersonalMeeting(); public boolean isWebinarMeeting(); public MobileRTCSDKError asyncGetInviteEmailContent(); public boolean isOnlySignUserCanJoin(); public void setOnlySignUserCanJoin(boolean onlySignJoin); public void setSpecifiedDomains(List<String> specifiedDomains); public List<String> getSpecifiedDomains(); public String getScheduleForHostEmail(); public boolean setScheduleForHostEmail(String scheduleForEmail); public AutoRecordType getAutoRecordType(); public void setAutoRecordType(AutoRecordType autoRecordType); public void setHostInChinaEnabled(boolean isHostInChinaEnabled); public boolean isHostInChinaEnabled(); public void setAvailableDialinCountry(MobileRTCDialinCountry diallinCountry); public MobileRTCDialinCountry getAvailableDialinCountry(); void setEnableWaitingRoom(boolean enable); boolean isEnableWaitingRoom(); void setEnableLanguageInterpretation(boolean enable); boolean isEnableLanguageInterpretation(); void setEnableMeetingToPublic(boolean isPublic); boolean isEnableMeetingToPublic(); void setAlternativeHostList(List<Alternativehost> list); List<Alternativehost> getAlternativeHostList();