2017-10-11 10 views
1

私はReplayKitを使用してARKItアプリをビデオキャプチャしようとしています。録音ボタンを押して赤色にして録音を開始し、もう一度押すと白くなり録音が止まります。ReplayKit stop初めてレコーディングした場合

しかし、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 
       } 
      } 
     } 

最初に押されたとき、私は記録を見ることができますが開始された場合。それから、もう一度押すと、recorder.isRecordingが入力されているのがわかりますが、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は完了ハンドラに入っていないようです。 –

0

私はこれは間違いなくiOSのバグですhttps://forums.developer.apple.com/thread/62624

で回答に基づいて、この問題を修正しました。 Info.plistから "Localization native development region"エントリを削除することは、この問題を解決するようです。

関連する問題