Skip to content

Releases: XingMai/XmaxSDK-Android

1.0.9

Choose a tag to compare

@WengYuehTing WengYuehTing released this 16 Oct 12:05

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) and RealtimeModel.X2_1_1_PREVIEW_US (x2.1.1-preview-us). Update model selections when upgrading.
  • Added faceRestoration: Boolean = false to both startGeneration overloads. Recompile callers against the new method signatures; Kotlin calls that omit the parameter keep the default behavior.
  • Added setUplinkVideoStatisticsListener and setDownlinkVideoStatisticsListener, with UplinkVideoStatistics, 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 videoFormat values 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

Choose a tag to compare

@WengYuehTing WengYuehTing released this 09 Oct 09:02

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/v1 for 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 the displayName and nullable baseUrl model properties.
  • Added replaceExternalVideoStream(videoFormat, targetSource) and RealtimeStreamReplacement, 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 optional RealtimeContext.referenceVideo property.

1.0.7

Choose a tag to compare

@WengYuehTing WengYuehTing released this 29 Sep 17:46

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) and stopExternalVideoStream() to XmaxRealtimeManaging.
  • Added RealtimeExternalVideoSource and RealtimeExternalFrameSink for 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.encoderPreference now defaults to MAINTAIN_FRAMERATE instead of AUTO. Explicit encoder preferences remain supported.

1.0.6

Choose a tag to compare

@WengYuehTing WengYuehTing released this 13 Sep 18:17

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, and XmaxVideo(...) for a single track.
  • Both composables accept Modifier, videoContentMode, isInteractionEnabled, and trajectoryRenderer, 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

Choose a tag to compare

@WengYuehTing WengYuehTing released this 13 Sep 13:10

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 localAudioVolume and remoteAudioVolume read-only properties to XmaxRealtimeManaging.
  • Added RealtimeConnectionState.PREPARING and READY, and replaced DISCONNECTED and ERROR with RealtimeState.reason and RealtimeReason.
  • Added disconnect(reason: RealtimeReason) for explicit disconnect reasons.
  • Removed XmaxRealtimeManaging.setErrorListener(), setCameraPreviewReadyListener(), and RealtimeErrorListener; observe realtime state and its reason instead.
  • Removed XmaxError.severity and XmaxErrorSeverity; resource cleanup now depends on the active operation.

1.0.4

Choose a tag to compare

@WengYuehTing WengYuehTing released this 11 Sep 06:44

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_PRO and model input sizing metadata, including resolution buckets, pixel bounds, alignment, default frame rate, and default camera format.
  • Added RealtimeVideoEncoderPreference and optional minimum bitrate, maximum bitrate, and encoder preference properties to RealtimeVideoFormat.
  • Added camera stream overloads with model defaults and the useMicrophone option.
  • Added model selection to createMediaService() while preserving its Java-compatible no-argument overload.
  • Removed XmaxRealtimeManaging.stopGeneration(); call disconnect() 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

Choose a tag to compare

@WengYuehTing WengYuehTing released this 07 Sep 09:56

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.CHINA and XmaxEnvironment.GLOBAL.
  • Added environment selection to XmaxConfiguration; the default remains China and existing constructor signatures remain compatible.

1.0.2

Choose a tag to compare

@WengYuehTing WengYuehTing released this 06 Sep 11:26

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 RealtimeVideoFrame and RealtimeVideoFrameListener for 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.isFrameInterpolationEnabled because Android does not implement frame interpolation.
  • Breaking: Removed MediaServicing.supportsFrameInterpolation() and XmaxErrorCode.FRAME_INTERPOLATION_UNSUPPORTED for the same reason.

1.0.1

Choose a tag to compare

@WengYuehTing WengYuehTing released this 05 Sep 16:08

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 XmaxRealtimeVideoView with localTrack, remoteTrack, videoContentMode, isInteractionEnabled, and trajectoryRenderer properties.
  • Added XmaxErrorSeverity, XmaxError.severity, and a severity-aware XmaxError constructor.
  • setErrorListener now 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

Choose a tag to compare

@WengYuehTing WengYuehTing released this 04 Sep 02:55

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.