ARKitの画面を録画する
実装
1、ReplayKitをインポート
ReplayKitを用います。
import ReplayKit
class ViewController: UIViewController,RPPreviewViewControllerDelegate...{
録画後プレビューのためのRPPreviewViewControllerDelegateも設定します。
2、ReplayKitの画面レコーダーを用意
let sharedRecorder = RPScreenRecorder.shared()
Info.plist の "Privacy - Microphone Usage Description" を追加してください。
追加せずにマイクを有効にすると、クラッシュします。
3、録画開始
sharedRecorder.isMicrophoneEnabled = true
sharedRecorder.startRecording(handler: { (error) in
if let error = error {
print(error)
}
})
4、録画終了
sharedRecorder.stopRecording(handler: { (previewViewController, error) in
previewViewController?.previewControllerDelegate = self
self.present(previewViewController!, animated: true, completion: nil)
})
プレビューViewがポップアップします。
「保存」をタップで写真ライブラリに保存されます。
Info.plist の "Privacy - Photo Library Additions Usage Description" と "Privacy - Photo Library Usage Description"を追加してください。
追加せずに保存しようとすると、クラッシュします。
5、プレビューViewのデリゲート設定
func previewControllerDidFinish(_ previewController: RPPreviewViewController) {
DispatchQueue.main.async { [unowned previewController] in
previewController.dismiss(animated: true, completion: nil)
}
}
「キャンセル」をタップでプレビューViewが消えるためのデリゲートメソッドです。
Tips
・録画音の設定
import AudioToolbox
...
AudioServicesPlaySystemSound(1117) // 録画開始音
AudioServicesPlaySystemSound(1118) // 録画終了音
・録画開始時に、不要なボタンなどを隠すと、綺麗にAR画面のみ録画できます。
iPhoneの時間やバッテリー表示などは録画されません。
🐣
お仕事のご相談こちらまで
[email protected]
Core MLを使ったアプリを作っています。
機械学習関連の情報を発信しています。
Author And Source
この問題について(ARKitの画面を録画する), 我々は、より多くの情報をここで見つけました https://qiita.com/john-rocky/items/f6dcfdd02289982e774f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .