java - Flowable的缓冲结果
问题描述
我有这段代码可以从网络摄像头捕获图像,每秒 1 张图像。
Flowable.interval(0, 1, TimeUnit.MILLISECONDS)
.map(aLong -> {
BufferedImage bufferedImage = webcam.getImage();
return bufferedImage;
}).subscribe(bufferedImage -> {
if(bufferedImage != null) {
}
// Capture 1000 images
}, error -> {
System.out.println(error.getMessage());
});
使用 RxJava,我怎样才能让它先缓冲 300 个图像,然后将 300 个图像(可能是一个 Java 数组)传递给一个处理方法,比如说processImages(bufferedImageArray);
解决方案
只需使用buffer(count)
运算符:
Flowable.interval(0, 1, TimeUnit.MILLISECONDS)
.map(...)
.buffer(300)
.subscribe(...)
推荐阅读
- android - 无法通过接收器接收 BOOT_COMPLETED 操作
- c++ - 从转换函数集中选择的重载在 GCC 和 Clang 之间不一致
- c++ - 存储小型、固定大小、分层的静态数据集的好方法是什么?
- 3dsmax - 可以知道 Hiarchy 的 Link Info 按钮的 hwnd 值吗?
- javascript - 如何在第一次渲染时在 localStorage 中设置默认值,然后使用按钮更新 localStorage 数据
- python - 将 Excel 数据导入 Python 以生成热图
- katalon-studio - 剪贴板返回“未找到辅助技术:org.GNOME.Accessibility.AtkWrapper”仅在 Katalon 代理中
- python - Django - 获取引用帖子的所有图像的网址?
- python - MDDialog 中的所有内容都是重叠的
- reactjs - 如何在我的 React 应用程序中嵌入 Instagram 帖子