Arkadiusz Fal 4c5b801c45 Fix Now Playing controls when switching between MPV and AVPlayer backends
When switching from AVPlayer to MPV backend, Now Playing controls (play/pause/seek) were disabled because AVPlayer maintained control of the remote command center and audio session. This fix ensures MPV can properly reclaim control.

Key changes:
- Clear AVPlayer's current item when switching to MPV to release media control
- Clear Now Playing info and set playback state to stopped before MPV takes over
- Reset remote command center by removing all targets (including AVPlayer's internal handlers) and re-adding custom handlers
- Force audio session deactivation/reactivation with .notifyOthersOnDeactivation
- Add forceReactivate parameter to setupAudioSessionForNowPlaying() for backend switches
- Ensure stream loading continues after Now Playing setup (don't return early)

The fix properly handles the transition by:
1. Clearing AVPlayer's media session completely
2. Scheduling async Now Playing setup without blocking stream loading
3. Resetting remote command handlers to reclaim control from AVPlayer
4. Re-activating audio session to establish MPV as the active player
2025-11-18 16:43:17 +01:00
2024-08-18 14:46:51 +02:00
2023-02-05 14:24:14 +01:00
2024-11-08 15:09:59 +01:00
2024-05-16 19:01:02 +02:00
2021-11-07 15:37:32 +01:00
2021-11-07 15:37:32 +01:00
2022-10-27 18:03:57 +02:00
2024-08-24 14:30:51 +02:00
2024-05-16 19:01:02 +02:00
2023-02-25 14:51:50 +01:00
2021-08-24 23:01:53 +02:00
2021-06-19 22:17:48 +02:00
2025-11-15 21:17:14 +01:00
2024-07-06 11:45:15 +02:00
2021-11-10 00:25:38 +01:00

Yattee logo

Yattee

Privacy oriented video player for iOS, tvOS and macOS

AGPL v3 GitHub issues GitHub pull requests Matrix

Discord

Screenshot

Features

  • Native user interface built with SwiftUI with customization settings
  • Player queue and history
  • Player component with custom controls, gestures and support for 4K playback
  • Fullscreen, Picture in Picture and background audio playback
  • SponsorBlock, configurable categories to skip

Documentation

Contributing

If you're interestred in contributing, you can browse the issues list or create a new one to discuss your feature idea. Every contribution is very welcome.

Use building instructions or join Discord or Matrix Channel for a chat if you need an advice or want to discuss the project.

Translations

You can help to make this project accessible to everyone by contributing to its localizations. Translation status

Localization service and hosting is provided by Weblate.

License

Yattee and its components is shared on AGPL v3 license.

Description
Privacy oriented video player for iOS, tvOS and macOS
Readme AGPL-3.0 327 MiB
Languages
Swift 99.4%
Ruby 0.6%