Skip to content

MpvRx v1.5.0-preview.4

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 17 Jul 08:44

1.5.0-preview.4 — Preview Release

Google Cast

  • Native Cast control: Added the standard stateful Google Cast button to portrait and landscape player controls, including a one-time layout migration for existing users.
  • Local and remote media handoff: Receiver-accessible HTTP(S) streams are loaded directly; Android-local file:// and content:// media use a tokenized temporary LAN server with byte-range seeking and CORS support.
  • Playback continuity: The sender transfers title, play state, duration, and current position, pauses local playback after a successful receiver load, and restores local playback at the receiver position when casting ends.
  • Complete sender controls: Added Cast SDK expanded controls, notification/lock-screen integration, reconnection support, and receiver volume controls.
  • Receiver compatibility guardrail: Casting uses Google's Default Media Receiver, so containers and codecs unsupported by the selected TV/Chromecast are not transcoded automatically.

Playback Lifecycle & Background Playback

  • One background playback switch: Audio preferences and the player background button now control the same persistent setting for both audio and video.
  • Reliable screen lock and unlock handling: Playback now follows the selected background policy across screen-off, lock-screen, unlock, and resume transitions without losing the prior play state.
  • PiP lifecycle coordination: Picture-in-picture transitions, PiP dismissal, screen locking while in PiP, and activity teardown now share one lifecycle policy instead of competing playback paths.
  • Persistent task-removal playback: Swiping the app out of Recents no longer kills an active foreground playback session, so background audio continues until explicitly stopped.
  • Foreground service cleanup: Disabling background playback immediately pauses playback and stops its foreground service and notification.
  • Preference migration: Existing users who enabled the legacy audio-only screen-lock option are migrated to the unified background playback setting.

Subtitle Search

  • Results appear as they arrive: Online subtitle results are merged into the list as each selected SubHub source or Wyzie completes instead of waiting for every request.
  • Race-free repeat searches: Starting another subtitle search cancels the previous request and clears stale results before streaming the new matches.

Playback Engine

  • Updated bundled mpvlib: Refreshed the packaged mpvlib.aar used by all preview APK variants.

Media Library & Audio Browsing

  • Preference-aware media switch: The Video/Audio selector appears only when audio browsing is enabled, remembers the selected library type, and resets to Video when audio browsing is disabled.
  • Complete audio playlists: Audio launches now populate the active playlist so previous and next controls update and navigate correctly.
  • Square audio artwork: Audio thumbnails use a square presentation in both grid and list cards while video thumbnails remain 16:9.
  • Audio-safe editing: Video compression actions are hidden for audio selections and guarded from opening with audio files.

Player Polish

  • Rounded streaming cache indicator: Buffered seekbar progress is clipped to the same pill-shaped ends as the normal seek track.
  • Smoother natural visualizer: Higher-rate spectrum capture, tuned frequency envelopes, frame-time-aware interpolation, and responsive beat decay make the audio blob react fluidly without harsh jumps.

AI Providers & Smart Tools

  • Current provider protocols: OpenAI, Anthropic, Groq, OpenRouter, Together, and OpenCode Zen requests now follow their current API shapes; OpenCode models are routed through Responses, Messages, Gemini, or Chat Completions as required.
  • Resilient response parsing: Text, multipart content, reasoning blocks, citations, provider errors, and both object- and array-based model lists are parsed without relying on one rigid response schema.
  • Thinking-model rename fixes: AI rename and subtitle-title output now discard reasoning and code fences, accept structured JSON fields, preserve extensions, and reject empty or unsafe names.
  • Provider-specific model memory: Each provider keeps its own selected model and cached model list, preventing stale selections when switching services.
  • Correct speech endpoints: Groq and OpenAI use supported transcription models, while OpenRouter speech requests use its current base64 JSON audio format.

Checksums

Variant SHA-256
arm64-v8a 732d79fcf1a5564aa9e9ddb998058a81d3410593950d3974be9271f68d94b184
armeabi-v7a 1c3d7021c448df29856c8161e6b9f28c2d47426c99c317ec493ae5621207da00
Universal fd5e0ce471c03dbd57d1bddc95a15c89f6ce8e8ff43e9f82d25a5a2c97b81051
x86 f48c58b9eb42b5a829fefd5f819c47db6793fb6dd68edd6d722841fcf814a434
x86_64 d37a6baa61838ed68c29907da95d2355588907f655d848da475e345ebf1b76e0

What's Changed

  • Add 'Play audio after screen lock' preference and make audio visualizer more resilient by @Riteshp2001 in #213
  • Fix background playback and PiP transitions by @Riteshp2001 in #216
  • feat: dynamically adjust secondary subtitle position using primary hitbox to prevent overlap by @Arnab11 in #218
  • feat(settings): align Folders settings screen title and styling by @Arnab11 in #219

Full Changelog: v1.5.0-preview.3...v1.5.0-preview.4