2017-10-11 87 views
1

我想使用ReplayKit視頻捕捉ARKIt應用程序。我有一個錄製按鈕,按下時變紅並開始錄製,然後再次按下變成白色並停止錄製。ReplayKit stopRecording第一次沒有進入

但stopRecording方法從來沒有在第一次工作。

如果recorder.isAvailable { recorder.delegate =自

 if recorder.isRecording { 
      print("Recorder is recording...") 

      // Stop recording 

      recorder.stopRecording { previewController, error in 
       print("Stop recording...") 
       self.recordImage.color = UIColor.white 
       self.recordImage.colorBlendFactor = 1 

       if let controller = previewController { 
        controller.previewControllerDelegate = self 
        self.present(controller, animated:true, completion:nil) 
       } 
      } 
     } 
     else { 

      // Start recording 

      recorder.startRecording { error in 
       print("Starting to record…") 

       if error == nil { 
        print("Start Recording…") 
        self.recordImage.color = UIColor.red 
        self.recordImage.colorBlendFactor = 1 
       } 
      } 
     } 

當第一次按下時,我可以看到錄音開始。然後當我再次按下時,我可以看到錄音機。錄音已錄入,但錄音機.stop錄製中的塊不起作用。我必須再次按下才能開始錄製,然後在錄製recorder.stopRecording塊之前再次停止錄製。

有什麼想法?幫助表示讚賞。

Press Record! 
Starting to record… 
Start Recording… 
Press Record! 
Recorder is recording... 

回答

0

您正在使用哪個iOS版本?我見過完成處理程序不會被調用的情況,通常是在第一次嘗試時調用,但之後就可以使用。這在iOS 9和11.0中發生了很多,但在11.0.3中似乎更好。

我不確定您是否在iPad上嘗試此操作,但上面的代碼無法在iPad上使用。您需要設置演示文稿樣式。

if UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiom.phone { 
        self.present(controller, animated: true, completion: nil) 
       } 
       else { 
        controller.popoverPresentationController?.sourceRect = self.recordingButton.bounds 
        controller.popoverPresentationController?.sourceView = self.view 
        controller.modalPresentationStyle = UIModalPresentationStyle.popover 
        controller.preferredContentSize = CGSize(width: self.view.frame.width, height: self.view.frame.height) 
        self.present(controller, animated: true, completion: nil)      
       } 
+0

我在11.0.3下再次測試,並且recorder.stopRecording似乎沒有進入完成處理程序。 –