Add support for external player playback (#1256)

## Description
Adds a new playback "backend" to play media in another app such as VLC.

By default, Wholphin will use the system default app. Typically if you
haven't chosen one, a dialog will show to pick which app. You can also
set a specific external app to use in Wholphin independent of the system
default.

Currently, this only support single item playback, ie playing next up
episodes is not supported yet.

Also since there is no standardized way to send resume position,
external subtitle info, etc, Wholphin makes a best effort. VLC,
mpv-android, & MX-Player are specifically tested/supported.

### Related issues
Closes #85

### Testing
Emulator & nvidia shield w/ VLC, mpv-android, & MX-player

## Screenshots
<img width="543" height="407" alt="image"
src="https://github.com/user-attachments/assets/ab37d41e-2909-40ed-b537-191ebb54d979"
/>

## AI or LLM usage
None
This commit is contained in:
Ray 2026-04-19 14:41:54 -04:00 committed by GitHub
parent 5050b087e1
commit 790069d818
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
16 changed files with 679 additions and 65 deletions

View file

@ -34,6 +34,7 @@ enum PlayerBackend{
EXO_PLAYER = 0;
MPV = 1;
PREFER_MPV = 2;
EXTERNAL_PLAYER = 3;
}
message MpvOptions{
@ -84,6 +85,7 @@ message PlaybackPreferences {
MpvOptions mpv_options = 21;
bool refresh_rate_switching = 22;
bool resolution_switching = 23;
string external_player = 24;
}
message HomePagePreferences{