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;
|
late FijkPlayer _instance;
|
||||||
final List<StreamSubscription> _subscriptions = [];
|
final List<StreamSubscription> _subscriptions = [];
|
||||||
final StreamController<FijkValue> _valueStreamController = StreamController.broadcast();
|
final StreamController<FijkValue> _valueStreamController = StreamController.broadcast();
|
||||||
|
final StreamController<String?> _timedTextStreamController = StreamController.broadcast();
|
||||||
final AChangeNotifier _completedNotifier = AChangeNotifier();
|
final AChangeNotifier _completedNotifier = AChangeNotifier();
|
||||||
Offset _macroBlockCrop = Offset.zero;
|
Offset _macroBlockCrop = Offset.zero;
|
||||||
final List<StreamSummary> _streams = [];
|
final List<StreamSummary> _streams = [];
|
||||||
|
@ -66,7 +67,6 @@ class IjkPlayerAvesVideoController extends AvesVideoController {
|
||||||
(value) => canSetSpeedNotifier.value = true,
|
(value) => canSetSpeedNotifier.value = true,
|
||||||
onError: (error) {},
|
onError: (error) {},
|
||||||
);
|
);
|
||||||
|
|
||||||
_startListening();
|
_startListening();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -75,12 +75,14 @@ class IjkPlayerAvesVideoController extends AvesVideoController {
|
||||||
_initialPlayTimer?.cancel();
|
_initialPlayTimer?.cancel();
|
||||||
_stopListening();
|
_stopListening();
|
||||||
await _valueStreamController.close();
|
await _valueStreamController.close();
|
||||||
|
await _timedTextStreamController.close();
|
||||||
await _instance.release();
|
await _instance.release();
|
||||||
}
|
}
|
||||||
|
|
||||||
void _startListening() {
|
void _startListening() {
|
||||||
_instance.addListener(_onValueChanged);
|
_instance.addListener(_onValueChanged);
|
||||||
_subscriptions.add(_valueStream.where((value) => value.state == FijkState.completed).listen((_) => _completedNotifier.notifyListeners()));
|
_subscriptions.add(_valueStream.where((value) => value.state == FijkState.completed).listen((_) => _completedNotifier.notifyListeners()));
|
||||||
|
_subscriptions.add(_instance.onTimedText.listen(_timedTextStreamController.add));
|
||||||
}
|
}
|
||||||
|
|
||||||
void _stopListening() {
|
void _stopListening() {
|
||||||
|
@ -295,7 +297,7 @@ class IjkPlayerAvesVideoController extends AvesVideoController {
|
||||||
Stream<int> get positionStream => _instance.onCurrentPosUpdate.map((pos) => pos.inMilliseconds);
|
Stream<int> get positionStream => _instance.onCurrentPosUpdate.map((pos) => pos.inMilliseconds);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Stream<String?> get timedTextStream => _instance.onTimedText;
|
Stream<String?> get timedTextStream => _timedTextStreamController.stream;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
double get speed => _speed;
|
double get speed => _speed;
|
||||||
|
@ -327,6 +329,9 @@ class IjkPlayerAvesVideoController extends AvesVideoController {
|
||||||
} else if (current != null) {
|
} else if (current != null) {
|
||||||
await _instance.deselectTrack(current.index!);
|
await _instance.deselectTrack(current.index!);
|
||||||
}
|
}
|
||||||
|
if (type == StreamType.text) {
|
||||||
|
_timedTextStreamController.add(null);
|
||||||
|
}
|
||||||
await seekTo(currentPosition);
|
await seekTo(currentPosition);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue