video: fixed subtitle remaining after deselecting track
This commit is contained in:
parent
de573fa629
commit
6795717fe1
1 changed files with 7 additions and 2 deletions
|
@ -20,6 +20,7 @@ class IjkPlayerAvesVideoController extends AvesVideoController {
|
|||
late FijkPlayer _instance;
|
||||
final List<StreamSubscription> _subscriptions = [];
|
||||
final StreamController<FijkValue> _valueStreamController = StreamController.broadcast();
|
||||
final StreamController<String?> _timedTextStreamController = StreamController.broadcast();
|
||||
final AChangeNotifier _completedNotifier = AChangeNotifier();
|
||||
Offset _macroBlockCrop = Offset.zero;
|
||||
final List<StreamSummary> _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<int> get positionStream => _instance.onCurrentPosUpdate.map((pos) => pos.inMilliseconds);
|
||||
|
||||
@override
|
||||
Stream<String?> get timedTextStream => _instance.onTimedText;
|
||||
Stream<String?> 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);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue