Replace NativePlayer with AVMediaPlayerProxy#2046
Conversation
Removed track selection section and updated feature support table.
Updated subtitle format support notes for Swiftfin and Native players.
Updated the XSub entry to clarify subtitle format playback requirements.
|
@LePips I got everything added back in here. Please let me know if you had something else in mind for 1853. This should current cover all the same functionality of VLCKit + AirPlay and PiP. PiP works natively for tvOS as well. I added the entitlement for it but like.... Who is that for?? Like, I want to watch things in a tiny box in the corner of my tv? Subtitles work if native. This has the same transcode problem that's resolved in 1882. Merging that on top back in March allowed for full track selection in this. I'm sure it's no different but I will re-test that once it's merged into Main. |
|
Videos are up to date on most recent commit. |
|
Beat me to it, this is great and exciting work! Initial notes:
|
Good calls! How do you feel about defaulting to AVPlayer? IMO, it sucks how restrictive it is for formats but I think AirPlay + PiP are high value features to the point it might make sense to make that the default. |
I have a generic version of this that works with the Jellyfin |
|
Working version: Simulator.Screen.Recording.-.iPhone.-.2026-06-14.at.01.24.44.movI think for this PR, the devices section will be left out. The goal is that section would be Chromecast + Jellyfin casting to other eligible clients. That will need the socket and some of the other |
Summary
Main
Resolves: #1853
Children:
Resolves: #1848
This PR migrates the
NativePlayerfrom a view to another proxy which lets us use a single UI for playback and controls. This also breaks out some protocols like subtitle selection and audio selection into their own protocols since, one day, when we have a music player, we will want audio selection only. In testing, everything is working as expected. Track selection works for compatible tracks (see Dependencies).Still up in the air, I am trying to determine what our default player should be. Leaning towards
VLCfor codec support butAVPlayerhas more HDR support + PiP so I don't know still which makes sense for us to set as the default. Working version isAVPlayerfor now but that's a one line change when I land on it.Dependencies
This PR is functional for track selection on
DirectPlayitems but cannot utilize other tracks during transcodes. Merging #1882 allows tracks to be selectable as AVPlayer will require us to rebuild the stream everything we want to change tracks.Leaving this in draft until #1882 is live.
Video
iOS PiP
This is
AVPlayerplaying, PiP, and subtitle track selection. There is an outstanding iOS issue where subtitles are ~10s out of sync coming from server:ScreenRecording_06-11-2026.12-59-23_1.mp4
Doing burn-in would resolve this or some kind of offset. Still early days.
tvOS PiP
NoAudioToGetUnder100MB.mov
Yes, I know something was on the camera lens. No, I will not re-record it.
AirPlay (with subtitles)
NoAudio.mov
AI Usage
Utilized Claude Code to merge in #1882 to test this with HLS reconstruction. This has been removed in a later commit to keep that on it's own PR.