画面キャプチャ機能を備えたアプリを開発しています。
ReplayKit は非常にシンプルで非常にうまく機能しますが、何度も録音をテストしていると、突然録音に失敗しました。
失敗すると、プレビュー ビューに空の黒いビデオが表示されます。クラッシュもエラーメッセージもありません。
自分のコードに疑問があったので (ReplayKit の実装は超シンプルですが)、ここから簡単なサンプル コードを試してみました https://code.tutsplus.com/tutorials/ios-9-an-introduction-to- replaykit--cms-25458 で、問題が引き続き発生することがわかりました。
この Q&A を見つけて、新しい録音を開始する前に録音を破棄しようとしましたが、うまくいきませんでした。 https://forums.developer.apple.com/thread/24613
また、最初の試行(アプリを起動した直後)では記録に失敗しますが、2回目の試行では成功することもわかりました。
したがって、私のシステムは一種のシステム全体のリソースを使い果たしており、そのクリーンアップは記録などの後にのみ行われると推測していますが、ReplayKit は非常に閉じられており、そのデータへのアクセスは非常に制限されています。
私が行った唯一の変則的なことは、このコードでビデオ データを直接取得する実験を行ったことです。私はこれを何度も行ったので、このコードに問題がある場合、その影響は大きくなる可能性があります。
[[RPScreenRecorder sharedRecorder] stopRecordingWithHandler:^(RPPreviewViewController * _Nullable previewViewController, NSError * _Nullable error) {
NSURL* screenCaptureVideoURL = [previewViewController valueForKey:@"movieURL"];
[self saveCaptureVideoToCameraRoll:screenCaptureVideoURL]; // My own routine to save the video to camera roll
}];
同じ問題に直面している人は他にいますか? それに対する解決策はありますか?
どんな情報でも大歓迎です。ありがとう。