Я создаю наблюдаемое из объекта AudioRecord, которое будет зацикливаться до тех пор, пока не будет выполнено условие.Однажды встретившись, он позвонит по телефону.Я также хочу иметь возможность сигнализировать в наблюдаемую, чтобы остановить цикл.Как только он завершится, мне нужно запустить другую наблюдаемую, поэтому мне нужно, чтобы она завершилась.
fun startListening(): Completable {
return Completable.create { channel ->
val recorder = AudioRecord()
while (recorder.isRecording() && !xxx) {
if (recorder.read(buffer, 0, buffer.size) == buffer.size) {
break
}
}
record.stop()
record.release()
channel.onComplete()
}
}
Есть ли какой-либо потокобезопасный способ связи с Наблюдаемым / Завершаемым из основного потока, чтобы он сказал, что он завершен?