Skip to content

Add audio support#157

Merged
kdroidFilter merged 7 commits into
masterfrom
audio-player
Jul 11, 2026
Merged

Add audio support#157
kdroidFilter merged 7 commits into
masterfrom
audio-player

Conversation

@kdroidFilter

Copy link
Copy Markdown
Owner

No description provided.

- Introduced `ComposeAudioPlayer` with platform-specific implementations for Android, iOS, Web, and JVM.
- Added `ComposeAudioPlayerState` enum to manage player state transitions.
- Provided coroutine-driven updates for playback state, volume, position, and duration via `rememberGadulkaLiveState`.
- Configured build scripts with Gradle dependencies for multiplatform support, including Android and WASM targets.
- Implemented platform-specific playback features using ExoPlayer (Android), AVFoundation (iOS), and HTMLAudioElement (Web).
- Included support for compiling and publishing through Maven.
- Added `AudioPlayerScreen` showcasing the use of `ComposeAudioPlayer` with stream and local audio playback.
- Updated navigation to include `AudioPlayer` as a new screen.
- Enhanced build configuration to add dependencies for the audio player module.
- Renamed `rememberGadulkaLiveState` to `rememberAudioPlayerLiveState` for consistency.
- Added `RodioPlayer` for handling audio playback in the JVM target of `ComposeAudioPlayer`.
- Implemented methods for playback, pause, stop, seek, and volume control using `RodioPlayer`.
- Refactored state management with `ComposeAudioPlayerState` updates based on playback events.
- Updated dependencies to include `Rodio` library.
…erences

- Renamed `ComposeAudioPlayer` to `AudioPlayer` across all platform-specific implementations (Android, iOS, JVM).
- Replaced `ComposeAudioPlayerState` with `AudioPlayerState` to align with updated naming.
- Updated `AudioPlayerScreen` in the sample app to use the new `AudioPlayer` class and state.
- Revised `README_AUDIO.MD` and sample code to reflect the renaming.
- Improved consistency and clarity in state management logic.
- Opt in to ExperimentalWasmDsl required by Kotlin 2.3.20
- Use version catalog compose dependencies instead of deprecated accessors
- Drop unused kermit dependency and stale catalog entries
Platform 37 ships as minor-versioned android-37.0, which AGP 8.13.2
only resolves through the compileSdk { release(37) } DSL.
… nucleus.rodio

- Add a `loop` parameter to `play(url, loop)` (expect/actual) and wire it in
  every backend: Media3 REPEAT_MODE_ONE (android), sink loop via rodio
  build_looped (jvm, with jar:/resource extraction to temp file), HTML5
  audio.loop (web), AVPlayer end-replay (ios).
- Switch the JVM backend to the rewritten rodio: coordinate
  dev.nucleusframework:nucleus.rodio:1.0.0 and package
  dev.nucleusframework.rodio.* (was io.github.kdroidfilter:rodio 0.1.0).
- Add mavenLocal() to dependencyResolutionManagement.
- Fix iOS podspec resource path separator (backslash -> forward slash).
@kdroidFilter kdroidFilter merged commit c2aaf97 into master Jul 11, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant