Repository navigation
Releases: XingMai/XmaxSDK-Android
Releases · XingMai/XmaxSDK-Android
Release list
1.0.9
What's New
- Migrated real-time audio and video transport from VolcEngine RTC to Agora RTC, with dedicated X2.1.1-preview models for China and US service endpoints.
- Added independent uplink and downlink quality adaptation based on network conditions, with one-hour quality history and resolution-aware bitrate budgets.
- Preserved the original aspect ratio of local image and video inputs while selecting the model generation canvas separately and using server-side contain padding.
- Fixed external video encoding settings so the active RTC connection receives the requested resolution, frame rate, and bitrate.
- Added uplink and downlink statistics to XLab, plus Debug-only quality tier controls that remember successful selections while keeping automatic adaptation active.
- Added face restoration for generation requests and enabled it for XLab's virtual try-on mode.
- Improved front-camera mirror consistency and SDK log readability.
API Changes
- Breaking: Replaced the previous model constants with
RealtimeModel.X2_1_1_PREVIEW_CN(x2.1.1-preview-cn) andRealtimeModel.X2_1_1_PREVIEW_US(x2.1.1-preview-us). Update model selections when upgrading. - Added
faceRestoration: Boolean = falseto bothstartGenerationoverloads. Recompile callers against the new method signatures; Kotlin calls that omit the parameter keep the default behavior. - Added
setUplinkVideoStatisticsListenerandsetDownlinkVideoStatisticsListener, withUplinkVideoStatistics,DownlinkVideoStatistics, and their listener interfaces. The reported RTC end-to-end delay is not a measurement of the complete AI generation round trip. - Made audio and SDK-hosted preview capabilities optional for
RealtimeExternalVideoSource, enabling video-only custom camera capture without implementing audio or preview methods. - Local image and video
videoFormatvalues now describe the media input and must preserve its aspect ratio. When omitted, the SDK uses the orientation-corrected, even-aligned media dimensions and model default frame rate; the model canvas is resolved separately. - Replaced the runtime RTC dependency with
io.agora.rtc:full-rtc-basic:4.6.4. Manual integrations must replace the VolcEngine dependency with Agora; Maven integrations resolve it transitively. XmaxSDK no longer requires the VolcEngine Maven repository or Jetifier.
1.0.8
What's New
- Added X2.1-preview with the same resolution buckets and default video configuration as X2.0-pro.
- Added model-specific display names and session endpoints. X2.0-pro and X2.1-preview now use
https://dev.xmaxai.com/open/api/v1for session creation, heartbeats, and closure; X2.0 and storage services continue to use the client environment endpoint. - Added external video input replacement with automatic generation recovery, connection reuse for compatible formats, and latest-request cancellation.
- Added network video generation from HTTP/HTTPS URLs, remote audio playback, and task-scoped completion callbacks.
- Updated XLab to show model display names instead of uppercasing model identifiers.
API Changes
- Added
RealtimeModel.X2_1_PREVIEW(x2.1-preview) and thedisplayNameand nullablebaseUrlmodel properties. - Added
replaceExternalVideoStream(videoFormat, targetSource)andRealtimeStreamReplacement, containing the new local stream and the remote stream when generation resumes successfully. - Added
createNetworkVideoStream(uri, videoFormat, sampleMethod, onFinish). The completion callback runs once on the main thread after the server completion event and the first generated frame are ready; it does not indicate that the final remote frame has finished displaying. - Added
RealtimeReferenceVideo,RealtimeVideoSampleMethod, and the optionalRealtimeContext.referenceVideoproperty.
1.0.7
What's New
- Improved rapid reference switching: newer generation requests now supersede pending requests inside the SDK, without requiring an application-side request queue.
- Fixed a connection race that could discard remote video publication events received while joining an RTC room.
- Added external video and audio frame input for integrations with application-owned media players.
- Changed the default video encoder preference to prioritize frame rate and removed periodic system CPU and memory statistics from RTC logs.
- Simplified XLab's generation request handling to use SDK-managed request replacement.
API Changes
- Added
createExternalVideoStream(source, videoFormat)andstopExternalVideoStream()toXmaxRealtimeManaging. - Added
RealtimeExternalVideoSourceandRealtimeExternalFrameSinkfor external preview binding and RGBA video / PCM audio input. The application retains ownership of the player and its playback lifecycle. - Superseded pending generation calls complete with
CancellationException; callers should treat replacement as cancellation rather than a generation failure. RealtimeVideoFormat.encoderPreferencenow defaults toMAINTAIN_FRAMERATEinstead ofAUTO. Explicit encoder preferences remain supported.
1.0.6
What's New
- Added Jetpack Compose video components backed by the existing Android renderers, preserving local preview, remote first-frame transitions, and touch trajectories.
- Fixed trajectory sampling after device sleep, where mixed clock sources could prevent samples after the initial touch from being sent.
- Preserved XLab's home scroll position when returning from realtime or storage screens and standardized the X2.0-PRO model label.
- Updated XLab to use the Compose realtime video component and refreshed the README overview and integration examples.
API Changes
- Added
XmaxRealtimeVideo(...)for local and remote tracks, andXmaxVideo(...)for a single track. - Both composables accept
Modifier,videoContentMode,isInteractionEnabled, andtrajectoryRenderer, and unbind tracks when removed from the composition without stopping media streams. - Existing Android View APIs remain available for XML and programmatic integration.
1.0.5
What's New
- Localized XLab's realtime and storage screens in Chinese and English, including the custom reference-image upload control.
- Improved realtime state transitions and cleanup when generation or connection operations fail.
- Localized SDK log details according to the client's China or global environment.
- Updated X2.0's default camera, image, and video input frame rate to 30 fps.
API Changes
- Added
localAudioVolumeandremoteAudioVolumeread-only properties toXmaxRealtimeManaging. - Added
RealtimeConnectionState.PREPARINGandREADY, and replacedDISCONNECTEDandERRORwithRealtimeState.reasonandRealtimeReason. - Added
disconnect(reason: RealtimeReason)for explicit disconnect reasons. - Removed
XmaxRealtimeManaging.setErrorListener(),setCameraPreviewReadyListener(), andRealtimeErrorListener; observe realtime state and its reason instead. - Removed
XmaxError.severityandXmaxErrorSeverity; resource cleanup now depends on the active operation.
1.0.4
What's New
- Added X2.0 Pro with fixed portrait and landscape input resolutions and model-specific camera defaults.
- Improved realtime concurrency, lifecycle cleanup, camera switching, microphone capture, and source-specific audio behavior.
- Added adaptive RTC upload bitrate configuration based on video size and frame rate.
- Refined startup timing, categorized logging, and Android task and frame identifiers.
- Updated XLab with localized Chinese and English home content, persistent model selection, and language-based China or global environment routing.
API Changes
- Added
RealtimeModel.X2_0_PROand model input sizing metadata, including resolution buckets, pixel bounds, alignment, default frame rate, and default camera format. - Added
RealtimeVideoEncoderPreferenceand optional minimum bitrate, maximum bitrate, and encoder preference properties toRealtimeVideoFormat. - Added camera stream overloads with model defaults and the
useMicrophoneoption. - Added model selection to
createMediaService()while preserving its Java-compatible no-argument overload. - Removed
XmaxRealtimeManaging.stopGeneration(); calldisconnect()to stop generation and release the active connection. - Changed
close()to retain registered public listeners so their lifecycle remains controlled by the caller.
1.0.3
What's New
- Added selectable China and global service environments for realtime and storage requests.
- Refreshed the Android integration guide with product use cases, playable demos, Maven Central setup, Jetpack Compose usage, and lifecycle guidance.
API Changes
- Added
XmaxEnvironment.CHINAandXmaxEnvironment.GLOBAL. - Added environment selection to
XmaxConfiguration; the default remains China and existing constructor signatures remain compatible.
1.0.2
What's New
- Added access to final remote video frames and an XLab MP4 recording workflow for saving generated video.
- Improved realtime request coordination so the latest generation intent, prompt, reference image, and audio preferences survive source and camera changes.
- Hardened camera teardown, cancellation, rendering callbacks, and remote-frame delivery across generation transitions.
- Simplified the XLab camera-switch loading transition and expanded the public integration documentation.
API Changes
- Added
RealtimeVideoFrameandRealtimeVideoFrameListenerfor copied I420 remote frames that can be retained for asynchronous encoding. - Added
XmaxRealtimeManaging.setRemoteVideoFrameListener(); callbacks run on an SDK background serial queue and drop stale queued frames. - Breaking: Removed
RealtimeConfiguration.isFrameInterpolationEnabledbecause Android does not implement frame interpolation. - Breaking: Removed
MediaServicing.supportsFrameInterpolation()andXmaxErrorCode.FRAME_INTERPOLATION_UNSUPPORTEDfor the same reason.
1.0.1
What's New
- Added a realtime video container that keeps the local preview mounted and reveals generated video after its first rendered frame for smoother transitions.
- Hardened realtime lifecycle coordination and resource cleanup across cancellation, connection failures, generation changes, and manager reuse.
- Added Android runtime metadata to API requests and RTC room events for platform-aware diagnostics.
- Improved Maven integration compatibility with current AndroidX consumers.
- Documented both Maven Central and manual AAR integration.
API Changes
- Added
XmaxRealtimeVideoViewwithlocalTrack,remoteTrack,videoContentMode,isInteractionEnabled, andtrajectoryRendererproperties. - Added
XmaxErrorSeverity,XmaxError.severity, and a severity-awareXmaxErrorconstructor. setErrorListenernow explicitly delivers fatal realtime failures on the main thread after local teardown; recoverable failures remain results of the calling suspending operation.close()now awaits resource cleanup, clears listeners, and leaves the realtime manager reusable.
v1.0.0
XmaxSDK 1.0.0
We are excited to introduce the first public release of XmaxSDK for Android.
XmaxSDK provides native Android APIs for building real-time interactive video generation experiences powered by Xmax AI.
Highlights
- Real-time generation using camera, image, or local video input
- Local media preview and remote generated video rendering
- Front and rear camera switching
- Runtime generation context updates
- Multi-touch trajectory interaction for generated video
- Independent local and remote audio volume controls
- Network quality monitoring
- Device performance monitoring and adaptive video format suggestions
- Image and video upload/download with progress callbacks
- Optional image content safety checks
- Structured SDK errors and configurable business/performance logging
- Kotlin coroutine-based APIs
- Jetpack Compose integration
Distribution
Available from Maven Central as ai.xmax:xmax-sdk:1.0.0.