Сохранение записи экрана с помощью RPScreenRecorder начала захвата
Я пытаюсь использовать RPScreenRecorder.shared(). StartCapture, чтобы сохранить запись экрана в базе данных. Я знаю, как сохранять видео из AVCapture, но не могу понять, как обрабатывать CMSampleBuffer для создания файла для сохранения в firebase. Пожалуйста, помогите, я пока не могу найти документацию по этому вопросу, вот метод вызова:
let recorder = RPScreenRecorder.shared()
if #available(iOS 11.0, *) {
recorder.startCapture(handler: { (videoBuffer, bufferType, error) in
print(videoBuffer)
print(bufferType)
}, completionHandler: { (error) in
})
} else {
// Fallback on earlier versions
}
Даже если бы мне указали в правильном направлении, я теряюсь в том, как сохранить пример буфера как файл, который можно воспроизвести как видео.
1 ответ
RPScreenRecorder.shared().startCapture(handler: { (sample, bufferType, error) in
if CMSampleBufferDataIsReady(sample)
{
self.showOverlayWindow()
if self.assetWriter.status == AVAssetWriterStatus.unknown
{
self.assetWriter.startWriting()
self.assetWriter.startSession(atSourceTime: CMSampleBufferGetPresentationTimeStamp(sample))
}
if self.assetWriter.status == AVAssetWriterStatus.failed {
print("Error occured, status = \(self.assetWriter.status.rawValue), \(self.assetWriter.error!.localizedDescription) \(String(describing: self.assetWriter.error))")
return
}
if (bufferType == .video)
{
if self.videoInput.isReadyForMoreMediaData
{
self.videoInput.append(sample)
}
}
}
}) { (error) in
debugPrint(error)
}
Подробности кода можно найти здесь