是否有任何waituntil运算符或rxswift中的类似操作员来等待一个值?
我正在使用rxswift来处理许多Async AvassetWriterInput写操作,但是在文件中写入更多缓冲区之前,我需要等待IsreadyFormoremediadata,我该如何处理?
基本上,可观察到的可观察到的是Asyncwritersubject发出的大量缓冲区,我想按照我收到的顺序编写所有缓冲区。
我有这个主题:
private var asyncWriter = ReplaySubject<(AVAssetWriterInput,CMSampleBuffer)>.create(bufferSize: 1)
我使用此代码散发了它的值:
asyncWriter.onNext((videoWriterInput, buffer))
我在这里订阅它以聆听:
disposable = asyncWriter.asObservable()
.takeWhile {
(writerPointer, _) in
writerPointer.isReadyForMoreMediaData
}.observeOn(MainScheduler.asyncInstance)
.subscribe(onNext: { (writerPointer, buffer) in
writerPointer.append(buffer)
})
I am using RXSwift to handle with a lot of async AVAssetWriterInput write operations, but I need to wait for isReadyForMoreMediaData before writing more buffers inside the file, how can I handle this?
Basically, the observable receives a lot of buffers emitted by the asyncWriterSubject and I want to write all of them in the order that I am receiving.
I have this subject:
private var asyncWriter = ReplaySubject<(AVAssetWriterInput,CMSampleBuffer)>.create(bufferSize: 1)
I emit the values for it using this code:
asyncWriter.onNext((videoWriterInput, buffer))
And I am subscribing it here to listen:
disposable = asyncWriter.asObservable()
.takeWhile {
(writerPointer, _) in
writerPointer.isReadyForMoreMediaData
}.observeOn(MainScheduler.asyncInstance)
.subscribe(onNext: { (writerPointer, buffer) in
writerPointer.append(buffer)
})
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
以下是一些有关如何处理背压的一般信息。
这将向CMSPlame Buffer写入cmsample buffer WriterPointer每秒可达100次。当
isreadyFormoreMediAdata
为false时,它将存储示例缓冲区,直到bool再次为true为止。Here's some general information on how to handle back pressure.
This will write a CMSampleBuffer to the writerPointer up to 100 times per second. When
isReadyForMoreMediaData
is false, it will store sample buffers until the Bool is true again.