Как сохранить видеоролик ReplayKit в рулон камеры с помощью кнопки "Добавить приложение"

Я относительно новичок в разработке iOS и Swift, но у меня есть приложение, над которым я работаю, и который должен записывать активность на экране и сохранять результирующее видео в ролике камеры. Я использую ReplayKit.

Что сейчас работает:

Это код, который я начинаю записывать и заканчивая запись функция startRecording() запускается кнопкой, которая говорит "start", и функция stopRecording() вызывается кнопкой, которая говорит "stop".

var preview : RPPreviewViewController?

    func startRecording() {
        let recorder = RPScreenRecorder.sharedRecorder()
        recorder.startRecordingWithMicrophoneEnabled(true) { 
            [unowned self] (error) in
            print(recorder)
            if let unwrappedError = error {
                print(unwrappedError.localizedDescription)
            }
        }
    }

    func stopRecording() {
        let recorder = RPScreenRecorder.sharedRecorder()
        recorder.stopRecordingWithHandler {
            [unowned self] (preview, error) in
                if let unwrappedError = error {
                    print(unwrappedError.localizedDescription)
                }

        if let unwrappedPreview = preview {
            print("end")
            unwrappedPreview.previewControllerDelegate = self
    unwrappedPreview.modalPresentationStyle=UIModalPresentationStyle.FullScreen
            self.presentViewController(unwrappedPreview, animated: true, completion: nil)
        }
    }

Экран отлично записывается. У меня есть кнопка, которая говорит "Закончить", которая вызовет функцию stopRecording(). Когда эта кнопка будет нажата, появится предварительный просмотр, который будет воспроизводить записанное видео и позволит пользователю вручную редактировать и сохранять видео.

Что я пытаюсь сделать:

Мне нужно, чтобы кнопка просто сохранила видео, как показано на ролике камеры. Я хочу обойти экран предварительного просмотра, который позволяет пользователю редактировать и вручную сохранять. Это возможно? Если да, как бы вы подошли к проблеме?

Предварительный просмотр имеет тип RPPreviewViewController? и, как мне кажется, я просто не могу получить доступ к видео для сохранения. Поскольку ReplayKit является расширением UIKit, я попытался использовать

UISaveVideoAtPathToSavedPhotosAlbum(_ videoPath: String, _ completionTarget: AnyObject?, _ completionSelector: Selector, _ contextInfo: UnsafeMutablePointer<Void>)

но ни один из этих атрибутов не существует!

Если вам нужна дополнительная информация, пожалуйста, дайте мне знать. Если я идиот, пожалуйста, дайте мне знать! Это мой первый пост здесь, так что будь красивым! и спасибо.

Ответ 1

Я тоже хотел сделать то, что вы просили, но на данный момент RPScreenRecorder не предоставляет никакой из этих функций.