Всем доброго времени суток!
Код написан на котлине. Есть фрагмент, в котором прописана логика, позволяющая снять фото, видео на 10 сек и получить координаты места съемки. Используются flow и channel`ы.
Запись видео начинается по нажатию на кнопку.
и есть код с вот такой структурой:
flow со съемкой фото.flatMapConcat{
videoFlow , в котором происходит delay на 10 сек, мапится фото с видео
locationFlow, где получаем локацию
} .flowOn(
Dispatchers.IO)
.collect { }
Нужно останавливать видео по нажатию на кнопку. Мне подсказали, что там где сейчас delay на 10 сек нужно использовать
merge(
flowOf(""),
flowOf("")).
take(1), где 1ый
flow это delay, а 2ой
flow это broadcastchannel.openSubscribtion, в который кидается ивент, когда нажимается кнопка паузы
Может кто-то подсказать пример на подобную тему, или более подробно объяснить, как реализуется то, что я описала выше. Потому что моих знаний и официальной документации по flow и channel явно не хватает