Skip to content

Commit

Permalink
fix: Do not dispose controller if it comes from another screen
Browse files Browse the repository at this point in the history
  • Loading branch information
bdlukaa committed Feb 1, 2024
1 parent aff30c7 commit c9c940c
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 12 deletions.
13 changes: 8 additions & 5 deletions lib/widgets/events/event_player_desktop.dart
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ class _EventPlayerDesktopState extends State<EventPlayerDesktop> {
playingSubscription.cancel();
bufferSubscription.cancel();
focusNode.dispose();
videoController.dispose();
if (widget.player == null) videoController.dispose();
super.dispose();
}

Expand All @@ -140,11 +140,14 @@ class _EventPlayerDesktopState extends State<EventPlayerDesktop> {
debugPrint(mediaUrl);

if (mediaUrl != videoController.dataSource) {
videoController
..setDataSource(mediaUrl)
..setVolume(volume)
..setSpeed(speed);
debugPrint(
'Setting data source from ${videoController.dataSource} to $mediaUrl',
);
videoController.setDataSource(mediaUrl);
}
videoController
..setVolume(volume)
..setSpeed(speed);
}

@override
Expand Down
13 changes: 10 additions & 3 deletions lib/widgets/events/event_player_mobile.dart
Original file line number Diff line number Diff line change
Expand Up @@ -87,9 +87,16 @@ class __EventPlayerMobileState extends State<_EventPlayerMobile> {
: widget.event.mediaURL.toString();

debugPrint(mediaUrl);
videoController
..setDataSource(mediaUrl)
..setSpeed(1.0);
if (videoController.dataSource != mediaUrl) {
debugPrint(
'Setting data source from ${videoController.dataSource} to $mediaUrl',
);
videoController
..setDataSource(mediaUrl)
..setSpeed(1.0);
} else {
videoController.setSpeed(1.0);
}

super.didChangeDependencies();
}
Expand Down
17 changes: 13 additions & 4 deletions lib/widgets/events_timeline/desktop/timeline_card.dart
Original file line number Diff line number Diff line change
Expand Up @@ -160,13 +160,14 @@ class _TimelineCardState extends State<TimelineCard> {
top: 36.0,
right: 0.0,
child: Text(
'debug buffering: '
'buffer: '
'${(widget.tile.videoController.currentBuffer.inMilliseconds / widget.tile.videoController.duration.inMilliseconds).toStringAsPrecision(2)}'
'\n${widget.tile.videoController.currentBuffer.humanReadableCompact(context)}',
style: theme.textTheme.labelLarge!.copyWith(
color: Colors.white,
shadows: outlinedText(strokeWidth: 0.75),
),
textAlign: TextAlign.end,
),
),
PositionedDirectional(
Expand Down Expand Up @@ -228,11 +229,19 @@ class _TimelineCardState extends State<TimelineCard> {
),
SquaredIconButton(
tooltip: loc.showFullscreenCamera,
onPressed: () {
Navigator.of(context).pushNamed(
onPressed: () async {
final isPlaying = widget.timeline.isPlaying;
if (isPlaying) widget.timeline.stop();

await Navigator.of(context).pushNamed(
'/events',
arguments: {'event': currentEvent.event},
arguments: {
'event': currentEvent.event,
'videoPlayer': widget.tile.videoController,
},
);

if (isPlaying) widget.timeline.play();
},
icon: Icon(
Icons.fullscreen,
Expand Down

0 comments on commit c9c940c

Please sign in to comment.