Play direct feed video tap-to-play in the Reader #39
Labels
No labels
needs-info
needs-triage
ready-for-agent
ready-for-human
wayfinder:grilling
wayfinder:map
wayfinder:prototype
wayfinder:research
wayfinder:task
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
TheAnachronism/tt-rss-viewer#39
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Parent
Part of #30
Implements
docs/specs/reader-media.md.What to build
In the Reader, play direct remote video files from HTML
<video>and from promotedvideo/*enclosures with tap-to-play, always-on controls, and no autoplay (ignore HTMLautoplay). Show a poster when present before the user taps play. Unwrap image-proxy wrappers (e.g.images.weserv.nl/wsrv.nl) when the underlying target is a direct video file so playback uses the real media URL. Dispose/pause players when leaving a Reader page/widget so swipe paging does not keep decoding or playing neighbors. Failed video shows Open media + Open original. Audio enclosures stay chips.Acceptance criteria
<video src>for a direct file appears as an in-app tap-to-play player with controls and no autoplayvideo/*enclosures promote to the same tap-to-play UX after the body; consumed/deduped chips stay suppressedBlocked by
Resolution
Implemented on
master(8e7db3e):images.weserv.nl/wsrv.nlvideo wrappers; promote leftovervideo/*enclosures; dedupe against HTML<video>lib/reader/reader_video.dart— poster → tap-to-play viavideo_player, progress scrubber, no autoplay, pause on deactivate + dispose on leave; failure card with Open media / Open originalflutter_html<video>TagExtension + promoted video widgets in the Reader bodytest/reader/reader_media_plan_test.dartCorrection: shipped as
0483947(amended after dropping unusedextractVideoPoster).