fix(app): restore playback and state lifecycle contracts

This commit is contained in:
edde746
2026-07-25 16:16:04 +02:00
parent 73f4a3e055
commit 4af77f4696
58 changed files with 2448 additions and 363 deletions
+6 -10
View File
@@ -64,8 +64,11 @@ extension _VideoPlayerBuildMethods on VideoPlayerScreenState {
return const PlaybackSourceSubtitleChoice.off();
}
List<PlaybackSubtitleSidecar> _sourceSubtitleSidecarsForControls() =>
_playbackSession?.context.result.subtitleSidecars ?? const <PlaybackSubtitleSidecar>[];
List<MediaSubtitleTrack> _sourceSubtitleTracksForControls() {
final sidecarSourceIds = _sourceSubtitleSidecarIdsForControls();
final sidecarSourceIds = {for (final sidecar in _sourceSubtitleSidecarsForControls()) ?sidecar.sourceStreamId};
return selectableSourceSubtitleTracks(
_currentMediaInfo?.subtitleTracks ?? const <MediaSubtitleTrack>[],
isTranscoding: _isTranscoding,
@@ -74,13 +77,6 @@ extension _VideoPlayerBuildMethods on VideoPlayerScreenState {
);
}
Set<int> _sourceSubtitleSidecarIdsForControls() {
return {
for (final sidecar in _playbackSession?.context.result.subtitleSidecars ?? const <PlaybackSubtitleSidecar>[])
?sidecar.sourceStreamId,
};
}
Widget _buildLoadingSpinner() {
return const Scaffold(
backgroundColor: Colors.black,
@@ -273,8 +269,8 @@ extension _VideoPlayerBuildMethods on VideoPlayerScreenState {
}
final sourceAudioTracks = _currentMediaInfo?.audioTracks ?? const <MediaAudioTrack>[];
final sourceSubtitleSidecars = _sourceSubtitleSidecarsForControls();
final sourceSubtitleTracks = _sourceSubtitleTracksForControls();
final sourceSubtitleSidecarIds = _sourceSubtitleSidecarIdsForControls();
return Video(
player: player!,
@@ -296,7 +292,7 @@ extension _VideoPlayerBuildMethods on VideoPlayerScreenState {
sourceSubtitleTracks: sourceSubtitleTracks,
selectedSubtitleChoice: _selectedSourceSubtitleChoiceForControls(sourceSubtitleTracks),
selectedSecondarySubtitleStreamId: _playbackSession?.subtitleSelection.secondarySourceStreamId,
sourceSubtitleSidecarIds: sourceSubtitleSidecarIds,
sourceSubtitleSidecars: sourceSubtitleSidecars,
sourcePartId: _currentMediaInfo?.partId,
onPlaybackSourceChanged: _switchPlaybackSource,
onTogglePIPMode: _togglePIPMode,