Я относительно новичок в разработке 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>)
но ни один из этих атрибутов не существует!
Если вам нужна дополнительная информация, пожалуйста, дайте мне знать. Если я идиот, пожалуйста, дайте мне знать! Это мой первый пост здесь, так что будь красивым! и спасибо.