Repository navigation
Releases: Xmax-AI/XmaxSDK-HarmonyOS
Releases · Xmax-AI/XmaxSDK-HarmonyOS
Release list
1.0.12
What's New
- Add adaptive uplink and downlink transmission tiers based on network quality and device performance.
- Add normalized video statistics for monitoring resolution, bitrate, frame rate, packet loss, and latency.
- Support original-face restoration during generation; XLab enables it for virtual try-on.
- Preserve image and video aspect ratios while selecting generation and output sizes independently.
- Improve trajectory continuity and align interaction coordinates across media sizes.
- Refresh XLab, usage documentation, and demo materials; unify RTC log labels and improve log spacing in DevEco Studio.
API Changes
- Add the optional
faceRestorationargument to bothstartGenerationoverloads. It defaults tofalseon each public call and can be updated during generation. - Add
setUplinkVideoStatisticsListenerandsetDownlinkVideoStatisticsListener, with their statistics and listener types. - Replace
MediaServicing.resolveModelInputSizewithresolveMediaSize(size, source),resolveGenerationSize(size), andresolveTargetSize(size, maximumSize, frameInterpolationEnabled?). ExportRealtimeMediaSourcefor source-specific sizing. - Interaction points and outgoing trajectory coordinates now use normalized media coordinates in
[0, 1]instead of pixel coordinates. Update custom integrations accordingly. - Remove the legacy logging-options second argument of
XmaxConfiguration. Usenew XmaxConfiguration(apiKey, environment, loggerOptions). - Supported models are
X2_0andX2_0_SLA; SLA uses the client's configured production environment.
1.0.11
What's New
- Improve high-resolution video playback, including 4K input, by downscaling through the system Surface processing pipeline before reading frames.
- Reduce unnecessary frame drops caused by normal video processing latency for smoother local playback.
- Initialize video decoders asynchronously to keep the UI responsive while opening large videos.
- Simplify internal decoder timing and Surface dimension handling.
API Changes
- No public API changes.
1.0.10
What's New
- Control local video playback with pause and resume, including tap-to-toggle playback in XLab.
- Freeze the generated view with a native RTC snapshot while local video playback is paused.
- Play local videos once or loop them. XLab uses looping playback by default.
- Log incoming RTC room signals for troubleshooting.
- Determine camera output dimensions from the display orientation rather than display width and height.
API Changes
- Added
pauseLocalVideoStream(),resumeLocalVideoStream(), andtoggleLocalVideoStreamPlayback(). - Added
localVideoPlaybackStateandsetLocalVideoPlaybackStateListener()withPLAYING,PAUSE, andENDEDstates. - Added an optional third
loopargument tocreateLocalVideoStream(filePath, videoFormat?, loop?), defaulting totrue. - With
loop: false, natural completion stops local audio/video frame submission and reportsENDED. In-flight remote results can continue to render; the SDK does not automatically stop the generation task or disconnect the session. ENDEDdescribes local playback completion, not completion of cloud processing. Replaying an ended video requires stopping and recreating the local stream after disconnecting if necessary.
1.0.9
What's New
- The Pro-tier realtime model is now named X2.0-SLA, aligning the SDK with the
server-side model identifier. Model capabilities are unchanged: exact
1024 × 1920 / 1920 × 1024 input buckets, 2,100,000-pixel bound, 30 fps
default, and 1024 × 1920 default camera format.
Fixes
- RTC engine teardown no longer propagates vendor SDK exceptions:
destroyRTCEngine()errors are converted toXmaxError, and each event
unbinding during destroy is isolated so a single failure cannot mask the
engine release.
API Changes
- Breaking:
RealtimeModel.X2_0_PROis renamed toRealtimeModel.X2_0_SLA
with the model identifierx2.0-sla. The formerx2.0-proidentifier is no
longer accepted and rejects withINVALID_CONFIGURATION. - XLab migrates a saved Pro (
x2.0-pro) model selection to X2.0-SLA
automatically on launch.
1.0.8
What's New
- Rotating the camera between portrait and landscape during generation now stops the current task, keeps the RTC connection and remote track, and restarts generation with the latest capture dimensions and cached conditions. The state briefly returns to
CONNECTEDwithRealtimeReason.ORIENTATION_CHANGEDand becomesGENERATINGagain once confirmed — the same connection-preserving policy asswitchCamera(). - Orientation flips never use
change_conditionto resize (the server cannot change task dimensions); a mismatched task is always terminated and resubmitted. Rotations during a start or restart confirmation are detected through orientation-drift checks and rebuilt until the submitted orientation matches capture. - User actions are no longer blocked while a rotation restart is in progress: new conditions submitted during the settle window take effect immediately and supersede the pending restart, and conditions submitted while the restarted task awaits confirmation are merged into it through
change_conditioninstead of failing with a concurrent-operation error. switchCamera()also self-checks orientation drift on completion, closing the rotation-during-switch-confirmation gap.- XLab keeps the loading indicator visible for the whole orientation-driven rebuild and restores the remote video track after SDK-internal restarts.
API Changes
RealtimeContextaccepts an optionalfaceDetectionargument, sent asdetectionin generation start/condition parameters (defaultfalse).
1.0.7
What's New
- Camera capture can now ignore display orientation changes: rotating the window no longer flips capture dimensions or disconnects the active session when observation is disabled.
- A failed native camera frame read now drops the frame silently instead of reporting a media error, avoiding spurious error callbacks during transient reads.
- XLab is locked to portrait orientation and its realtime camera scenario disables display observation.
API Changes
createLocalCameraStream()accepts an optionalobserveDisplayChangeargument (defaulttrue). Passfalseto keep a fixed capture ratio: the SDK skips display-orientation listening, does not rotate or flip capture dimensions, and does not disconnect withRealtimeReason.ORIENTATION_CHANGEDon window rotation.
1.0.6
What's New
- Added Chinese and English localization to XLab and SDK diagnostics.
- Improved realtime lifecycle handling, including local preparation, preview readiness, generation cancellation, and camera orientation changes.
- Added optional microphone capture for camera input and independent local-preview and remote-playback volume controls.
- Added ordered remote video frame callbacks and configurable video upload bitrate and encoder preference.
- Improved model selection and XLab's realtime interface.
API Changes
RealtimeStatenow reportsPREPARINGandREADYand carries completion or failure details instate.reason(RealtimeReason). The formerdisconnectionReason,DISCONNECTED, andERRORstates are removed.setRemoteVideoFrameListener()exposes post-processed remote frames.createLocalCameraStream()accepts an optionaluseMicrophoneargument, andRealtimeVideoFormataccepts bitrate and encoder-preference options.RealtimeModel.X2_0_PROreplacesX2_0_SLA.- Removed the separate error and camera-preview-ready listeners,
stopGeneration(),RealtimeMediaSource, andXmaxErrorSeverity. Observe lifecycle failures and readiness throughsetStateListener(); usedisconnect()to cancel an active connection or generation.
1.0.5
What's New
- Reworked camera capture around CameraKit external frames with native libyuv/NEON conversion to reduce frame copies and improve delivery performance.
- Added orientation-aware camera output and landscape preview support, with clean disconnection when an active camera generation changes orientation.
- Improved camera profile selection with a preferred 16:9 path and 4:3 fallback, and added frame indexes to outgoing generation SEI.
API Changes
- Added
RealtimeDisconnectionReasonandRealtimeState.disconnectionReasonso applications can distinguish normal disconnection from camera-orientation changes. - Camera-backed
RealtimeVideoTrack.videoFormatnow follows the current output orientation.
1.0.4
What's New
- Added configurable China and global service environments for realtime and storage requests.
- Updated XLab and the integration guide with explicit service-environment examples.
- Refined the README description of the end-to-end generation workflow and gesture interaction.
API Changes
- Added
XmaxEnvironment.CHINAandXmaxEnvironment.GLOBAL. - Extended
XmaxConfigurationwith service-environment selection while preserving the existing logger-options call pattern.
1.0.3
What's New
- Added support for the
X2_0_SLArealtime model. - Updated XLab to display and persist all available realtime model selections.
- Increased the supported realtime input resolution range and updated the XLab default format to 1024 × 1920 at 30 fps.
API Changes
- Added
RealtimeModel.X2_0_SLA.