Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Player UI Modernization #695

Draft
wants to merge 6 commits into
base: master
Choose a base branch
from
Draft

Player UI Modernization #695

wants to merge 6 commits into from

Conversation

insidegui
Copy link
Owner

  • Use SF Symbols for most controls
  • Add AirPlay button
  • Make player controls more compact
  • Player controls positioned/sized according to video content instead of whole player area
  • Implement snapshot button to quickly screenshot videos

Before

PUIBefore

After

PUIAfter

@allenhumphreys
Copy link
Collaborator

allenhumphreys commented Jun 8, 2023

Looks great, noticed a few things:

  1. The window width is now constrained to be unnecessarily wide
  2. The book marks indicators a bit funny, could be existing issuesScreenshot 2023-06-08 at 1 50 20 PM
  3. I managed to create a bunch of book marks all at the same spot, then while removing them I managed to get the app to crash with a constraint not being finite! You can also crash it by just changing the playback speed a few times.
  4. This isn't from your work, but I noticed full screen mode doesn't use the external player status which feels inconsistent. In full screen, you just see the video poster image. This is likely because the entire player view moves to the full screen window.
  5. For the PiP external status view, the status view takes the full space of the view which results in a bit of a jarring UI transition when moving in and our of PiP
  6. The volume slider thumb is vertically misplaced
  7. We should still the UX of the time remaining label from QuickTime. Clicking it changes between total time and time remaining. They also use a - to signal that it is the time remaining. Bonus points if we took the tvOS feature of showing what time of day the video will finish :-P
  8. The volume icon could change as the slider changes, e.g. speaker.wave.3.fill -> speaker.wave.2.fill -> speaker.wave.1.fill
  9. The goforward/backward buttons look squished.

Loving the more SwiftUI, this UI layout is insanely hard to follow.

@insidegui
Copy link
Owner Author

I'm not discarding the possibility of redoing the whole player in SwiftUI tbh 😅

@allenhumphreys
Copy link
Collaborator

Surely the controls view could pretty easily be a swiftui view, it's basically just buttons. Maybe a binding or 2. It'd be like 500 fewer lines of code 😂

@insidegui
Copy link
Owner Author

Something else we can remove (regardless of a SwiftUI migration) is the external playback stuff, since that's been disabled with a compile-time flag for a while.

@sugarmo
Copy link

sugarmo commented Feb 29, 2024

Can we add subtitles to downloaded videos? The current situation is that even if a video has subtitles when played online, the subtitles will be lost as long as it is downloaded and played again. In fact, transcript can be used as subtitles. Is it difficult to implement this feature?

@insidegui
Copy link
Owner Author

@sugarmo That's tracked in #657, feel free to continue this discussion there

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants