How can I listen to stream and emit state with Cubit
?
With Bloc
we can do something like this:
on<VideoStreamPlayPauseEvent>(
(event, emit) async {
if (event.play) {
await emit.forEach(
videoStreamingRepo.videoDataStream,
onData: (VideoData videoStreamData) => VideoStreamState(
currentFrame: videoStreamData,
isPlaying: true,
),
);
}
CodePudding user response:
You should listen to the stream
using listen()
and based on the event
you can emit
the desired state.
yourstream.listen((event) {
if (event.play)
emit(First State)
else
emit(Second State)
});
Extra: Based on the demand of questioner
To Stop listening to stream:
StreamSubscription<Map<PlaceParam, dynamic>> subscription;
subscription = yourstream.listen((event) {
if (event.play)
emit(First State)
else
emit(Second State)
...
subscription.cancel();