我如何收听Cubit的流和emits 状态?

有了Bloc,我们可以做这样的事情:

    on<VideoStreamPlayPauseEvent>(
      (event, emit) async {
        if (event.play) {
          await emit.forEach(
            videoStreamingRepo.videoDataStream,
            onData: (VideoData videoStreamData) => VideoStreamState(
              currentFrame: videoStreamData,
              isPlaying: true,
            ),
          );
        }

推荐答案

你应该用listen()来听stream 而基于event,你可以得到emit想要的状态.

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(); ???? cancel this way
    });

Flutter相关问答推荐

我不能通过第5步了解Flutter 翼Firebase教程

将CLOUD_FIRESTORE程序包更新到版本4.13.0(到Windows)时出现问题

为什么Spotify Auth API返回400,而";code_verier不正确?

在 flutter 吧蜂巢中拯救主题

如何翻转这种剪刀设计

如何在Flutter中制作弯曲文本

Flutter飞溅屏幕即使在修改后仍显示默认徽标和背景色

如何使用providerContainer监听/写入FutureProvider?

Flutter 包错误:此应用程序使用的是已弃用的 Android 嵌入版本

无状态小部件被奇怪地重建

使用堆栈的自定义按钮

更改底部导航栏下方 Flutter Snackbar 的位置

Flutter blue plus 库,当try 从 esp32 驱动程序获取 PlatformException 时读取特性

Flutter - 如何将按钮对齐到行的右侧

如何在 Flutter 中使用简写 IF 禁用单选按钮?

如何将变量翻译成其他语言

Flutter_riverpod 安装时出现问题

如何在 Flutter 中创建类似箭头标签的设计

如何将 pushNamed 与 Dismissible Widget 一起使用并查看背景透明第一页

如何做到这一点,当我们在 textified 中输入 ab 然后将 applebanana 显示为一个单词?飘飘然