Использование ReplayKit в iOS

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

2016-07-27 23:46:35.196 replay1[65028:4134788] plugin com.apple.ReplayKit.RPVideoEditorExtension interrupted
2016-07-27 23:46:35.196 replay1[65028:4134989] Hub connection error Error Domain=NSCocoaErrorDomain Code=4097 "connection to service named com.apple.ReplayKit.RPVideoEditorExtension" UserInfo={NSDebugDescription=connection to service named com.apple.ReplayKit.RPVideoEditorExtension}

Поэтому я попытался запустить приложение на самом iPhone 6s.

Я получаю предупреждение о том, как записывать в приложении, но когда я пытаюсь остановить, оно не останавливается, и в консоли появляется сообщение

2016-07-27 21:29:43.118 replay[3009:968481] -[UIWindow endDisablingInterfaceAutorotationAnimated:] called on <UIWindow: 0x14ce56570; frame = (0 0; 375 667); gestureRecognizers = <NSArray: 0x14ce573f0>; layer = <UIWindowLayer: 0x14ce55480>> without matching -beginDisablingInterfaceAutorotation. Ignoring.

Кроме того, когда я нажимаю stop в приложении, оно не меняется на start.

Вот код:

import ReplayKit
import UIKit

class ViewController: UIViewController, RPPreviewViewControllerDelegate
{
    override func viewDidLoad()
    {
        super.viewDidLoad()

        navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Start", style: .Plain, target: self, action: #selector(startRecording))
    }

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

        recorder.startRecordingWithMicrophoneEnabled(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(self.stopRecording))
            }
        }
    }

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

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

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

    func previewControllerDidFinish(previewController: RPPreviewViewController)
    {
        dismissViewControllerAnimated(true, completion: nil)
    }
}

Где я иду/делаю неправильно?

Спасибо.

P.S. Я только начал разработку iOS, поэтому не могу полностью понять, о чем говорит это сообщение в консоли.


person Community    schedule 27.07.2016    source источник
comment
Я получаю ваше второе предупреждающее сообщение во время работы на устройстве. Все работает нормально, хотя выдает эту ошибку. Можете ли вы вспомнить, удалось ли вам решить проблему?   -  person Waylan Sands    schedule 11.01.2021


Ответы (1)


Мне никогда не удавалось заставить replayKit работать в симуляторе. Я думаю, что он полагается на физический чип в аппаратном обеспечении, чтобы выполнить часть работы.

Однако я не уверен в части автоповорота вашей ошибки.

person Andrew    schedule 14.02.2017