Skip to content

KitePlayer 0.0.25

Choose a tag to compare

@yuroyami yuroyami released this 15 Sep 02:37
· 914 commits to main since this release

The audio visualiser no longer crashes on Android 13 and newer, and the media session behaves on every platform: buffering shows as buffering, the lock screen and the now playing card are written only when they would be wrong, and the web gets browser media controls.

Usage

// Native views, no Compose.
implementation("io.github.yuroyami:kiteplayer:0.0.25")

// Compose playback, including the default player and both video paths.
implementation("io.github.yuroyami:kiteplayer-compose:0.0.25")

// Optional Compose audio visualiser, alongside either playback dependency.
implementation("io.github.yuroyami:kiteplayer-audioviz:0.0.25")

Changelog

  • Fixed the audio visualiser crashing on Android 13 and newer with "Software rendering doesn't support RuntimeShader". On Android, warp drawings now leave a plain echo instead of a bent one. Fixes #135.
  • Fixed a stalled stream showing as paused on the Android lock screen, and the lock screen being rewritten on every tick.
  • Fixed the iOS now playing card being rebuilt five times a second. Live streams are marked live and get no scrub bar.
  • Added browser media controls on the web through KitePlayerMediaSession, and a desktop stub that reports it is unavailable.
  • Both samples now use the media session and the playback guards. Fixes #77.
  • Breaking: MediaSessionState takes a phase and a hasVideo flag. Code that builds or copies one needs the new parameters; reading playing works as before.

See the full changelog for the complete list.

Dependencies

  • Kotlin 2.4.10, Compose Multiplatform 1.12.0
  • Android Gradle Plugin 9.4.0, Gradle 9.7.1, JDK 21; Android minSdk 26
  • KiteFFmpeg 0.2.0, Kite3D 0.2.0 for the optional visualiser
  • Ktor 3.5.2, libass 0.17.4