Skip to content

1.0.3

Choose a tag to compare

@WengYuehTing WengYuehTing released this 28 Sep 07:54
· 50 commits to main since this release

What's New

  • Uplink video now targets the smooth-priority bitrate (minimumBitrate from the encoding configuration) as the single TRTC target bitrate instead of the quality-first maximum, trading peak quality for steadier frame delivery on weak networks.
  • On iOS Safari and WKWebView, where remote volume cannot be scaled, setRemoteAudioVolume now degrades to mute/unmute control, and a stored volume of 0 survives remote audio subscription instead of playing sound.
  • Fixed uplink orientation on mobile portrait devices: the TRTC capture and encoding profiles are transposed so the published stream matches the requested orientation.
  • Camera startup no longer waits for exposure validation; a fixed 200 ms warmup replaces the frame-quality probe, shortening the time to a publishable stream.
  • The realtime session is now cleaned up on pagehide, and the session close request uses keepalive so it still reaches the server while the page unloads.
  • X-Lab example: the session page adapts to mobile with a picture-in-picture layout and single-line prompt input, input focus no longer triggers page zoom on iOS, the reference list is fixed at two scrollable rows, and assorted mobile/desktop polish.

API Changes

  • RealtimeLaunchTiming breaking change: frameValidationMs is removed; permissionMs (camera/microphone permission confirmation) and publishMs (local stream publish) are added, and connectionMs now includes the camera warmup wait while excluding publishing. Code referencing frameValidationMs fails to compile and must be migrated.
  • XmaxRealtimeManager.setRemoteAudioVolume on iOS Safari and WKWebView is effectively binary: 0 mutes remote audio and any positive value restores it; intermediate volume levels have no effect on those platforms.
  • No other API changes.

Requirements and Known Limitations

  • Camera and microphone require an HTTPS or localhost secure context and user permission. Audio playback remains subject to browser autoplay policies.
  • On iOS Safari and WKWebView, remote audio volume cannot be scaled per user; only mute/unmute is available.
  • Interpolation requires WebGPU, shader-f16, and requestVideoFrameCallback; at most one frame is inserted per source pair with a 60fps ceiling, and the target rate is not guaranteed on all devices and resolutions.
  • The remote frame rate depends on server send pacing and network jitter; interpolation cannot compensate for burst-delivered source frames, so overall smoothness relies on server-side pacing.
  • RTC statistics frame rate reflects the raw received stream, and E2E is an RTC-provided estimate; neither represents full end-to-end latency including generation and client-side interpolation.