Skip to content

Releases: kdroidFilter/ComposeMediaPlayer

0.10.0

17 Apr 05:23
3807098

Choose a tag to compare

What's Changed

Full Changelog: v0.9.0...v0.10.0

0.9.0

11 Apr 21:11
0c5b18c

Choose a tag to compare

Full Native JNI — Zero External Dependencies

The entire desktop backend has been rewritten. JNA and GStreamer Java bindings are gone. macOS, Linux, and Windows players now communicate directly via JNI with native C/C++/Swift code compiled and embedded in the library. No more runtime dependency on JNA, no more GStreamer Java wrapper — just raw native performance.

Major Performance Gains on Desktop

  • Output scaling at the native level: the native backend now returns frames in the exact size requested by the Compose surface, eliminating expensive CPU-side rescaling in Kotlin/JVM.
  • AtomicLong + end-of-playback callback replace polling-based approaches (#179).
  • Windows: rewritten audio pipeline with timing-master model, adaptive frame polling, reduced memory usage, and fixed race conditions.
  • Linux: fixed aspect ratio scaling, pause/release handling.
  • macOS: JNI state management refactored, NaN crash in slider fixed, native player disposal synchronized.

New Features

  • Picture-in-Picture support for Android and iOS.
  • HLS streaming support on Windows (via IMFMediaEngine).
  • openAsset() API for loading bundled media files (#96).
  • Video caching (opt-in) for Android and iOS (#34).
  • seekStart / seekFinished API, restart(), and onRestart callback.
  • onPlaybackEnded callback and exposed duration property on VideoPlayerState.
  • Configurable audio session mode for iOS and Android.
  • Playback speed minimum lowered to 0.25x.

Fixes

  • iOS: threading issues, crash on dead links, security-scoped resource access for local files.
  • Android: removed default ExoPlayer buffering spinner, fixed fullscreen.
  • Web: slider drag seek and progress bar now work correctly.
  • Windows: fixed colors, thread safety, crash on audio device change, video-only-audio bug.
  • Fixed currentTime / sliderPos not reaching end of media.
  • Alpha blending fix for video frame rendering (BlendMode.Src).

Modernization

  • Replaced Kermit logger with custom lightweight logger.
  • Native sources inlined in the repo and built in CI.
  • Sample app redesigned with Material3 adaptive UI.
  • Kotlin bumped to 2.3.10.
  • Swift 6.2+ compatibility (MTAudioProcessingTapCreate).

New Contributors

Full Changelog: v0.8.8...v0.9.0

by @kdroidFilter

0.8.8

02 Feb 21:10
13cb1d9

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.8.7...v0.8.8

0.8.7

10 Jan 20:22
ea695c2

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.8.6...v0.8.7

0.8.6

24 Dec 19:13
cf3815e

Choose a tag to compare

What's Changed

  • Bump dependency versions in libs.versions.toml (FileKit, Kotlin, Compose, Activity Compose, Media3 Exoplayer, DarkModeDetector). by @kdroidFilter in #144
  • Add support for preview mode in VideoPlayerState and VideoPlayerSurface. by @kdroidFilter in #145
  • Add websupport via new WebElementApi by @kdroidFilter in #146
  • Fixed loading Video files with no extension on Mac by @3llomi in #148
  • Refine video player frame processing and cleanup logic by @kdroidFilter in #150
  • Video player state interface by @duongphuhiep in #147

New Contributors

Full Changelog: v0.8.5...v0.8.6

0.8.5

10 Oct 07:26
24c114e

Choose a tag to compare

What's Changed

  • Bump io.github.kdroidfilter:platformtools.darkmodedetector from 0.6.1 to 0.6.2 by @dependabot[bot] in #119
  • Bump jna from 5.18.0 to 5.18.1 by @dependabot[bot] in #121
  • Fixed opening file: URIs without authority on macOS by @boiler23 in #123

New Contributors

Full Changelog: v0.8.4...v0.8.5

0.8.4

24 Sep 18:39
132a97c

Choose a tag to compare

What's Changed

Full Changelog: v0.8.3...v0.8.4

0.8.3

21 Sep 18:39

Choose a tag to compare

What's Changed

Important

WASM (Compose Web) — Important:
The WASM target is broken starting with version 0.8.3. It needs a complete reimplementation using the new interop API introduced in Compose 1.9.0. Unfortunately, I don’t have time to rewrite it right now and, since the WASM target is still alpha, I’m leaving it as-is for the time being. If you’d like to support this library financially to help deliver proper WASM support, HLS support on Windows, and other essential video player features, please reach out. This is a substantial amount of work, and your support would make a real difference.

Full Changelog: v0.8.2...v0.8.3

0.8.2

24 Aug 10:43
e31a083

Choose a tag to compare

What's Changed

  • Bump kotlin from 2.2.0 to 2.2.10 by @dependabot[bot] in #103
  • Optimize memory management and performance in Windows and Mac video player. by @kdroidFilter in #106

Full Changelog: v0.8.1...v0.8.2

0.8.1

13 Aug 11:50
8d7eea3

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.8.0...v0.8.1