mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-11 02:46:16 -08:00
Catch-up / timeshift playback of a live channel now passes the EPG programmes overlapping its archive window to the shared player controls as timeline segments, relative to the playback start. - buildCatchupTimelineSegments (ui/playback) clips programmes to the window: Xtream requests exactly [start, stop] of the programme, M3U runs from utc to lutc (getM3uCatchupWindowEndSeconds in m3u-utils). - timelineSegments is plumbed like mediaTitle: WebPlayerViewComponent -> the four engine hosts -> app-player-controls. - Producers: Xtream live layout, unified Favorites/Recent live tab (Xtream and M3U), M3U playlist player. Stalker has no archive playback. - Unit specs per host, helper specs, Electron E2E for Xtream catch-up. - Contract doc updated; feature release note supersedes the internal timeline-segments model note. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
30 lines
1015 B
HTML
30 lines
1015 B
HTML
<div #playerRoot class="html-video-player-shell">
|
|
<video
|
|
#videoPlayer
|
|
id="video-player"
|
|
autoplay
|
|
[controls]="!sharedControls"
|
|
></video>
|
|
|
|
@if (sharedControls) {
|
|
<app-player-controls
|
|
[controller]="controlsAdapter"
|
|
[playerSurface]="playerRoot"
|
|
[fullscreenTarget]="fullscreenTarget()"
|
|
[mediaTitle]="mediaTitle()"
|
|
[upNext]="upNext()"
|
|
[timelineSegments]="timelineSegments()"
|
|
[showControls]="interactionEnabled()"
|
|
[shortcutsEnabled]="interactionEnabled()"
|
|
(previousEpisodeRequested)="previousEpisodeRequested.emit()"
|
|
(nextEpisodeRequested)="nextEpisodeRequested.emit()"
|
|
/>
|
|
} @else {
|
|
<app-series-playback-navigation-controls
|
|
[navigation]="seriesNavigation"
|
|
(previousEpisodeRequested)="previousEpisodeRequested.emit()"
|
|
(nextEpisodeRequested)="nextEpisodeRequested.emit()"
|
|
/>
|
|
}
|
|
</div>
|