我正在从AudioRecord对象创建一个可观察对象,该对象将循环播放直到满足条件。一旦满足,它将调用onComplete。我还希望能够向可观察对象发出信号以停止循环。完成后,我需要开始另一个可观察的事件,所以我需要它来完成。
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()
}
}
是否有任何线程安全的方法可以与主线程进行通信以使其可观察/可完成以告知其完成?