2016-07-27 1 views
0

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 자체에서 응용 프로그램을 실행하려고했습니다.

내가 응용 프로그램에 기록하지만 중지하려고 할 때, 그것은 늘 중지하고 난에 stop을 누르면 메시지가,

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. 

또한 콘솔에서이 방법에 대한 경고를 받고 있어요 앱인 경우 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) 
    } 
} 

: 여기

코드인가?

감사합니다.

피씨 나는 콘솔의 메시지가 말하는 것을 완전히 이해할 수 없도록 iOS 개발을 막 시작했습니다.

답변

0

나는 시뮬레이터에서 작동하도록 replayKit을 얻지 못했습니다. 하드웨어의 물리적 칩을 사용하여 작업의 일부를 수행한다고 생각합니다.

오류 자동 회전 부분에 대해 잘 모르겠습니다.

0
//Replay kit doesn't work on simulator and will work on a physical device. 

//Try this code hope it helps: 

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) 
     } 
    } 
} 

    func previewControllerDidFinish(_ previewController: RPPreviewViewController) { 
     self.dismiss(animated: true, completion: nil) 
    }