Запись Replay Kit?

Я обнаружил, что комплект погашения помогает записывать экран со звуком, но проблема в том, что он записывает активность всего экрана в виде видео со звуком, но я хочу записать активность определенного представления, которое присутствует в основном представлении. Итак, мой вопрос: позволяет ли Replay Kit записывать определенные виды активности с аудиозаписью. Если да, пожалуйста, помогите мне в достижении того же самого. Заранее спасибо. Любая помощь будет высоко оценена.

Следующий код помогает мне записывать активность ВСЕГО ЭКРАНА:

func startRecording() {
    let recorder = RPScreenRecorder.shared()

    if #available(iOS 9.0, *) {
        recorder.startRecording(withMicrophoneEnabled: true) { [unowned self] (error) in
            if let unwrappedError = error {
                print(unwrappedError.localizedDescription)
            } else {
                self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Stop", style: .plain, target: self, action: #selector(PreviewVC.stopRecording))
            }
        }
    } else {
        // Fallback on earlier versions
    }
}

func stopRecording() {
    let recorder = RPScreenRecorder.shared()

    recorder.stopRecording { [unowned self] (preview, error) in
        self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Start", style: .plain, target: self, action: #selector(PreviewVC.startRecording))

        if let unwrappedPreview = preview {
            unwrappedPreview.previewControllerDelegate = self
            self.present(unwrappedPreview, animated: true, completion: nil)
        }
    }
}

person Swifty Codes    schedule 10.08.2017    source источник


Ответы (2)


Я считаю, что у вас нет такого большого контроля над Replaykit. Вам лучше создать CVPixelBuffer изображения UIView, а затем сохранить их в файл или передать на свой сервер.

person user3806731    schedule 08.06.2018

Я не рекомендую использовать ReplayKit для большинства записей. Вместо этого проверьте SceneKitVideoRecorder. Хотя он создан для записи в SceneKit, его можно довольно легко изменить для записи любого типа UIView (используя view.layer.render(in: CGContext).

person hartw    schedule 13.06.2018