Arkadiusz Fal 98bdd5d6a5 Fix iOS Now Playing Info Center integration for AVPlayer backend
This commit enables proper Now Playing Info Center integration on iOS, allowing video playback information to appear in Control Center and Lock Screen with working remote controls.

Key changes:
- Activate audio session on app launch with setCategory(.playback, mode: .moviePlayback) and setActive(true)
- Set up remote commands on first play() call instead of during app initialization to avoid claiming Now Playing slot prematurely
- Remove removeTarget(nil) calls that were claiming Now Playing without content
- Enable remote commands (play, pause, toggle, seek) explicitly and add proper target handlers
- Use backend.isPlaying instead of PlayerModel.isPlaying to avoid race conditions
- Include playback rate (1.0 for playing, 0.0 for paused) in Now Playing info
- Update Now Playing info on main queue for thread safety
- Update Now Playing when switching between backends
- Remove audio session deactivation from pause() and stop() methods

Note: This fix works for AVPlayer backend. MPV backend has fundamental incompatibility with iOS Now Playing system.
2025-11-15 15:44:05 +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
2025-11-15 11:21:36 +01: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
2023-07-24 19:45:30 +02:00
2025-11-09 18:25:32 +01:00
2024-07-06 11:45:15 +02:00
2025-11-09 18:14:35 +01: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%