From 6795717fe1bca00e48a5a2ea50b9ec5a321af387 Mon Sep 17 00:00:00 2001 From: Thibault Deckers Date: Sat, 3 Jul 2021 11:03:40 +0900 Subject: [PATCH] video: fixed subtitle remaining after deselecting track --- lib/widgets/viewer/video/fijkplayer.dart | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/widgets/viewer/video/fijkplayer.dart b/lib/widgets/viewer/video/fijkplayer.dart index aaae6beb8..db01b9b12 100644 --- a/lib/widgets/viewer/video/fijkplayer.dart +++ b/lib/widgets/viewer/video/fijkplayer.dart @@ -20,6 +20,7 @@ class IjkPlayerAvesVideoController extends AvesVideoController { late FijkPlayer _instance; final List _subscriptions = []; final StreamController _valueStreamController = StreamController.broadcast(); + final StreamController _timedTextStreamController = StreamController.broadcast(); final AChangeNotifier _completedNotifier = AChangeNotifier(); Offset _macroBlockCrop = Offset.zero; final List _streams = []; @@ -66,7 +67,6 @@ class IjkPlayerAvesVideoController extends AvesVideoController { (value) => canSetSpeedNotifier.value = true, onError: (error) {}, ); - _startListening(); } @@ -75,12 +75,14 @@ class IjkPlayerAvesVideoController extends AvesVideoController { _initialPlayTimer?.cancel(); _stopListening(); await _valueStreamController.close(); + await _timedTextStreamController.close(); await _instance.release(); } void _startListening() { _instance.addListener(_onValueChanged); _subscriptions.add(_valueStream.where((value) => value.state == FijkState.completed).listen((_) => _completedNotifier.notifyListeners())); + _subscriptions.add(_instance.onTimedText.listen(_timedTextStreamController.add)); } void _stopListening() { @@ -295,7 +297,7 @@ class IjkPlayerAvesVideoController extends AvesVideoController { Stream get positionStream => _instance.onCurrentPosUpdate.map((pos) => pos.inMilliseconds); @override - Stream get timedTextStream => _instance.onTimedText; + Stream get timedTextStream => _timedTextStreamController.stream; @override double get speed => _speed; @@ -327,6 +329,9 @@ class IjkPlayerAvesVideoController extends AvesVideoController { } else if (current != null) { await _instance.deselectTrack(current.index!); } + if (type == StreamType.text) { + _timedTextStreamController.add(null); + } await seekTo(currentPosition); } }