iOS14でPhotoライブラリーにアクセスする際に利用するPHPickerViewControllerについてご質問お願いいたします。
表示されたPHPickerViewControllerには動画のみ表示させたいのですが、PHPhotoLibrary.requestAuthorization(for: accessLevel)を呼び出した場合、表示されるのは写真と動画の両方が表示されてしまいます。
かといってコメントアウトしているpickerDisplayメソッドを呼び出すとPHPhotoLibrary.requestAuthorization(for: accessLevel)のPHPickerViewControllerが表示されますがそれがdismissされたあとに動画のみが表示されたPHPickerViewControllerが再度表示されてしまいます。
ユーザーがアプリをダウンロードしアルバムボタンを押したらアルバムアクセス許諾ダイアログが表示され「許可しない」以外を選択した際に表示されるPHPickerViewControllerには動画のみ表示させたい場合はどうすればいいのでしょうか?
それともそもそもPHPhotoLibrary.requestAuthorization(for: accessLevel)で許可を求める事自体が不要なのでしょうか?
ご教授いただけますと大変助かります。
Swift
1 2let accessLevel : PHAccessLevel = .readWrite 3let phStatus = PHPhotoLibrary.authorizationStatus(for: accessLevel) 4 5swich phStatus { 6case .notDetermined: 7PHPhotoLibrary.requestAuthorization(for: accessLevel) { 8status in 9 10// self.pickerDisplay() 11} 12default: 13//other 14break; 15} 16 17func pickerDisplay() { 18 19let photoLibrary = PHPhotoLibrary.shared() 20let configuration = PHPickerConfiguration(photoLibrary: photoLibrary) 21configration.filter = .videos 22let picker = PHPickerViewController(configuration: configuration) 23picker.delegate = self 24DispatchQueue.main.async { 25 self.present(picker, animated: true) 26} 27} 28 29func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) { 30picker.dismiss(animated: true) 31let identifiers = results.compactMap(.assetIdentifier) 32let fetchResult = PHAsset.fetchAssets(withLocalIdentifiers: identifiers, options: nil) 33 34// TODO: Do something with the fetch result if you have Photos Library access 35} 36
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。