Releases: kdroidFilter/ComposeMediaPlayer
0.5.2
What's Changed
- Refine video loading and playback control logic by @kdroidFilter in #29
- Simplify media player integration by removing redundant code by @kdroidFilter in #31 (fix #30)
Full Changelog: v0.5.1...v0.5.2
0.5.1
What's Changed
- Implementation of offscreen rendering using GStreamer, fixing overlapping issue for linux @kdroidFilter in #28
- Bump co.touchlab:kermit from 2.0.4 to 2.0.5 by @dependabot in #24
Full Changelog: v0.5.0...v0.5.1
0.5.0
🎉 Compose Media Player v0.5.0 🎉
🚀 Exciting news!
✅ You can now remove all dependencies on JavaFX from your project.
🎥 Compose Media Player now relies on AVPlayer, eliminating the need for any other dependencies.
⚡ Additionally, CPU usage has been reduced by a factor of 2 to 3, depending on the video.
🚧 Limitations
⚠️ Subtitles: Subtitle support is temporarily unavailable for macOS, iOS, and Windows.
📦 Integration
Simply update your dependency to:
dependencies {
implementation("io.github.kdroidfilter:composemediaplayer:0.5.0")
}No additional configuration is needed ! 🚀
Full Changelog: [Compare v0.4.0...v0.5.0](v0.4.0...v0.5.0)
💡 Share feedback or report issues on our [GitHub repository](https://github.com/kdroidFilter/ComposeMediaPlayer). Together, let's build something amazing! 💪
0.4.0
🎉 Compose Media Player v0.4.0 🎉
🚀 Exciting news! Compose Media Player continues to expand its horizons with initial iOS support. This release also use Kotlin 2.1.20.
✨ What's New
🍎 First Support for iOS:
- ✅ Initial experimental support for video playback on iOS devices.
🚧 Experimental Features & Limitations:
⚠️ Audio Levels: Audio level visualization is currently not functional on iOS.⚠️ Subtitles: Subtitle support is temporarily unavailable for iOS.- 🔄 Buffering Detection (isLoading): Remains in experimental mode; performance and accuracy may vary across platforms.
📦 Integration
Simply update your dependency to:
dependencies {
implementation("io.github.kdroidfilter:composemediaplayer:0.4.0")
}No additional configuration needed for iOS! 🚀
Full Changelog: v0.3.1...v0.4.0
We encourage feedback and contributions to help further enhance the iOS experience.
💡 Share feedback or report issues on our GitHub repository. Together, let's build something amazing! 💪
0.3.1
🎉 Compose Media Player v0.3.1 🎉
Release Date: March 3, 2025
✨ What's New & Improvements
- ✅ Removal of Maven Snapshot Repository Dependency – No need to add a custom repository anymore; the library is now available on Maven Central!
📦 Integration
Simply add the following dependency to your project:
dependencies {
implementation("com.yourpackage:compose-media-player:0.3.1")
}No additional configuration required! 🚀
A big thanks to @vinceglb for this PR !!
Full Changelog: v0.3.0...v0.3.1
0.3.0
🎉 Compose Media Player v0.3.0 🎉
Release Date: February 25, 2025
🚀 The Compose Media Player keeps evolving! This release brings WebAssembly support, subtitle integration, and more exciting improvements.
🚀 New Features
-
WebAssembly (WASM) Support:
- 🎉 Experimental WebAssembly support is here!
- 🔗 Live Demo:
-
Subtitle Support:
- 📝 Now supports subtitles! Add subtitles to your videos for a richer media experience.
- 🌍 Platform Availability: Currently available on Web, Android, and Linux
Full Changelog: v0.2.0...v0.3.0
0.2.0
🎉 Compose Media Player v0.2.0 🎉
Release Date: January 25, 2025
🚀 The Compose Media Player just got better! This release brings exciting new features, enhancements, and contributions from our amazing community.
🚀 New Features
-
Platform-Specific Enhancements:
- Windows: Switched to MFPlayer for improved video playback performance and seamless integration with native Windows APIs.
-
Playback Improvements:
- 🔁 Loop Playback: New option to enable continuous looping of videos (
playerState.loop). ⚠️ Error Handling: Manage network or playback errors gracefully throughplayerState.error.- ⏳ Loading Indicator: Beta feature to detect and display buffering states (
playerState.isLoading). - 🎞️ Aspect Ratio Adaptation: Automatically adapts the video container to match the video’s aspect ratio, ensuring a clean and properly scaled surface within the composable.
- 🔁 Loop Playback: New option to enable continuous looping of videos (
-
Format Compatibility:
- Expanded support for video formats with platform-specific compatibility. Supported formats now include MP4, AVI, MKV, and more. A detailed table is available in the documentation.
-
Progress Control:
- Enhanced slider support for precise playback progress control.
🔧 Updated Installation Process
- Updated dependency version to
0.2.0. - Streamlined JavaFX dependency inclusion for macOS users:
val osName = System.getProperty("os.name").lowercase(Locale.getDefault())
val osArch = System.getProperty("os.arch").lowercase(Locale.getDefault())
val javafxVersion = "22.0.1"
jvmMain.dependencies {
implementation(compose.desktop.currentOs)
if (osName.contains("mac")) {
val macClassifier = if (osArch.contains("aarch64")) "mac-aarch64" else "mac"
implementation("org.openjfx:javafx-base:\${javafxVersion}:\${macClassifier}")
implementation("org.openjfx:javafx-graphics:\${javafxVersion}:\${macClassifier}")
implementation("org.openjfx:javafx-swing:\${javafxVersion}:\${macClassifier}")
implementation("org.openjfx:javafx-media:\${javafxVersion}:\${macClassifier}")
}
}🛠 What's Changed
- ✨ Open video from a
PlatformFileby [@vinceglb](https://github.com/vinceglb) in [#7](#7)
🆕 New Contributors
- A huge thanks to [@vinceglb](https://github.com/vinceglb) for their first contribution! 🎉 Check out their work in [PR #7](#7).
Full Changelog: [v0.1.1...v0.2.0](v0.1.1...v0.2.0)
💡 Share feedback or report issues on our [GitHub repository](https://github.com/kdroidFilter/Compose-Media-Player). Together, let’s build something amazing! 💪
0.1.1
Bump JavaFx to 22.0.1
Full Changelog: v0.1.0...v0.1.1
0.1.0
🎉 Compose Media Player v0.1.0 🎉
Release Date: January 20, 2025
🌟 Welcome to the first release of Compose Media Player, a robust, multiplatform video player library for Compose Multiplatform apps. Here’s what it offers:
Features 🎥
- 🌐 Multiplatform Support: Android, macOS, Windows, and Linux.
- 📽 Video Playback: Supports local files and URLs.
- ⏯ Media Controls: Play, pause, loop toggle, volume control, and timeline slider.
- 🎨 Customizable UI: Fully designable with Jetpack Compose.
- 🎧 Audio Levels Visualization: Real-time audio feedback.
Installation 🚀
Add this to your build.gradle.kts:
dependencies {
implementation("io.github.kdroidfilter:composemediaplayer:0.1.0")
}Known Issues ⚠️
- JavaFX Warning: A harmless warning may appear on Windows/macOS during startup:
WARNING: Unsupported JavaFX configuration: classes were loaded from 'unnamed module @xxxxxx'
Coming Soon 🚀
- 🌐 iOS and WebAssembly (WasmJS) support.
- 🎶 Standalone audio player.
- 🎥 Separate audio and video streams.
💡 Share feedback or issues on our [GitHub](https://github.com/kdroidFilter/Compose-Media-Player). Let’s make this amazing together! 💪