Skip to content

Multiview feature - #3325

Open
parabamol63 wants to merge 1 commit into
recloudstream:masterfrom
parabamol63:multiview-feature
Open

parabamol63 wants to merge 1 commit into
recloudstream:masterfrom
parabamol63:multiview-feature

Conversation

@parabamol63

Copy link
Copy Markdown

No description provided.

@parabamol63

Copy link
Copy Markdown
Author

feat(player): Add Kick-style Multi-Stream player, stream picker dialog, and live stream resolvers

Summary of Changes

This PR introduces a Kick-style Multi-Stream (MultiView) Player to CloudStream, allowing users to watch multiple live streams or videos simultaneously with interactive layout modes, dynamic volume control, and streamlined stream selection.

Key Features

  1. Kick-style MultiView Player (MultiViewPlayerFragment)

    • Supports up to 9 concurrent playback slots.
    • Interactive layout switching: Grid View and 1+2 Focus Mode (main focused stream + side feeds).
    • Dynamic per-stream volume control, mute/unmute toggles, and hover/touch sliders.
    • Graceful offline stream detection and prompt to return to single-player when closing active feeds.
  2. Stream Picker Dialog (MultiViewStreamPickerDialog)

    • Instant 0ms local population from active providers, current home section, bookmarks, favorites, and mirror sources.
    • Asynchronous multi-page background scraping and live query execution (live / vs).
    • Real-time search filter across all extensions and category chip filtering.
    • Batch stream selection with live progress indication.
  3. Multi-Player Manager (MultiPlayerManager)

    • Multi-slot ExoPlayer instance management, resolution capping, and seamless single-stream <-> multi-stream state transfer.
    • Synchronized audio focus (active focused stream unmuted, secondary streams muted automatically).
  4. Code Quality & Compatibility

    • Updated Kotlin ABI reference (library.api).
    • Cleaned up method complexity to satisfy CodeFactor.
    • Compatible with Media3 dynamic range compressor and HW+ decoding pipeline.

Testing & Verification

  • Tested multi-stream playback across multiple live providers on mobile and Android TV/emulator layouts.
  • Verified ABI check via ./gradlew library:checkKotlinAbi.
  • Verified build via ./gradlew app:assemblePrereleaseDebug.

This branch has not been deployed

No deployments
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