Я создаю собственный модуль реагирования, чтобы иметь возможность передавать то, что пользователь делает со своим телефоном. Работает идеально для Android. Для iOS это потоковое, когда в приложении, но когда я покидаю приложение, захват останавливается
RCT_REMAP_METHOD(start,
startWithResolver:(RCTPromiseResolveBlock)resolve
rejecter:(RCTPromiseRejectBlock)reject)
{
NSMutableDictionary *result = [[NSMutableDictionary alloc] init];
[result setObject:@true forKey:@"success"];
if (@available(iOS 11.0, *)) {
if([RPScreenRecorder.sharedRecorder isRecording]) {
return resolve(result);
}
[RPScreenRecorder.sharedRecorder startCaptureWithHandler:^(CMSampleBufferRef _Nonnull sampleBuffer, RPSampleBufferType bufferType, NSError * _Nullable error) {
dispatch_sync(dispatch_get_main_queue(), ^{
if(bufferType == RPSampleBufferTypeVideo) {
NSString *strEncoded = [self imageFromSampleBuffer:sampleBuffer];
[self sendEventWithName:@"ImageCaptured" body:@{@"image": strEncoded}];
}
});
} completionHandler:^(NSError * _Nullable error) {
if(error == NULL) return resolve(result);
reject(@"fail_capture_start", @"Failed to start screen capture", error);
}];
} else {
[result setObject:@false forKey:@"success"];
[result setObject:@"Please upgrade your phone to version 11" forKey:@"message"];
resolve(result);
};
}
Я не могу найти, как продолжать работать RPScreenRecorder.sharedRecorder startCaptureWithHandler
, когда приложение находится в фоновом режиме.