Released: 2026-06-24 Updated: 2026-07-01
Summary: Breaking changes include updated audio configuration API naming for consistency, and modifications to external video source handling with new I420Limited and I420Full color range support. Adds a pre-connection flow to accelerate session joins, machine-answer detection for PSTN call-outs, and comprehensive audio QoS statistics. Additional improvements include user failover status tracking, expanded command channel payload limits (now 1024 bytes), and new callbacks for subsession status changes that trigger when users join or leave subsessions.
Breaking Changes
-
Support the I420Limited and I420Full color ranges for the external video source.
-
Add a new property
externalVideoSourceDataFormattoZoomVideoSDKSessionContext.public ExternalSourceDataFormat externalVideoSourceDataFormat = ExternalSourceDataFormat.ExternalSourceDataFormat_I420_Full; -
Remove the
ExternalSourceDataFormat formatparameter fromsendVideoFrameinZoomVideoSDKVideoSender.public interface ZoomVideoSDKVideoSender { // ... void sendVideoFrame(ByteBuffer frameBuffer, int width, int height, int frameLength, int rotation, ExternalSourceDataFormat format); // change to -> void sendVideoFrame(ByteBuffer frameBuffer, int width, int height, int frameLength, int rotation); }
-
-
Rename several audio configuration APIs for naming consistency.
- Rename
isMicOriginalInputEnable()toisMicOriginalInputEnabled()inZoomVideoSDKAudioSettingHelper - Rename
isFileTransferEnable()toisFileTransferEnabled()inZoomVideoSDKSession.
- Rename
-
Joining or leaving a subsession now triggers the
onSubSessionStatusChangedandonSessionLeavecallbacks inZoomVideoSDKDelegate.-
New callbacks in
ZoomVideoSDKDelegate.public interface ZoomVideoSDKDelegate { void onSubSessionStatusChanged(ZoomVideoSDKSubSessionStatus status, List<SubSessionKit> subSessionKitList); void onSessionLeave(ZoomVideoSDKSessionLeaveReason reason); } -
New enumeration values in
ZoomVideoSDKSessionLeaveReason.public enum ZoomVideoSDKSessionLeaveReason { /** User leaves current session because joining a subsession. */ ZoomVideoSDKSessionLeaveReason_JoinSubsession, /** User leaves current session because returning to the main session. */ ZoomVideoSDKSessionLeaveReason_ReturnToMainSession }
-
Added
-
Add machine-answer detection for PSTN call-out, so the host can tell whether a call was answered by a person or forwarded to voicemail.
-
New property in
ZoomVideoSDKInvitePhoneUserInfo./** * @brief true: Enable machine-answer detection for this callout, otherwise false. */ public boolean bDetectMachine; -
New enum value in
ZoomVideoSDKPhoneStatus./** The call was answered by machine. */ PhoneStatus_AnsweredByMachine
-
-
Add a pre-connection (two-step join) flow to speed up the actual session join.
-
New interfaces in
ZoomVideoSDK.public abstract ZoomVideoSDKSession prepareJoin(ZoomVideoSDKSessionContext params, ZoomVideoSDKPreJoinParam preJoinParam); public abstract int commitJoin(); public abstract int cancelPrepareJoin(); -
New class
ZoomVideoSDKPreJoinParam.public class ZoomVideoSDKPreJoinParam { public int timeoutInterval = 0; } -
New error codes in
ZoomVideoSDKErrors.int Errors_Session_PreJoin_Not_In_Flow; int Errors_Session_PreJoin_Already_Commit; int Errors_Session_PreJoin_Timeout;
-
-
Provide audio QoS statistics data.
-
New interface in
ZoomVideoSDKQOSSendStatistics.long getHeaderBytesSent(); -
New interfaces in
ZoomVideoSDKQOSRecvStatistics.long getHeaderBytesReceived(); int getPacketsDiscarded(); int getFecPacketsReceived(); int getFecPacketsDiscarded(); double getJitterBufferTargetDelay(); double getJitterBufferMinimumDelay(); long getTotalSamplesReceived(); long getConcealedSamples(); long getSilentConcealedSamples(); long getConcealmentEvents(); long getInsertedSamplesForDeceleration(); long getRemovedSamplesForAcceleration(); double getTotalSamplesDuration(); double getAudioLevel(); double getTotalAudioEnergy();
-
-
Support user failover status change.
-
New interface in
ZoomVideoSDKDelegate.public interface ZoomVideoSDKDelegate { // ... void onUserFailoverStatusChanged(ZoomVideoSDKUser user, boolean isInFailover); } -
New interface in
ZoomVideoSDKUser.public interface ZoomVideoSDKUser { boolean isInFailover(); }
-
Changed
- Increase the command channel payload size limit to 1024.