[Swift]iOS14でenabledSemanticSegmentationMatteTypesを設定すると挙動がおかしくなる問題の解決法
そろそろiOS14にメジャーアプデしてみたら、作成中のカメラアプリでカメラプレビューもAVCapturePhoto取れなくなってハマりました。
photoOutput.enabledSemanticSegmentationMatteTypes = photoOutput.availableSemanticSegmentationMatteTypes
どうもこの一文でenabledSemanticSegmentationMatteTypesが空でなくなると挙動がおかしくなるみたいです。
あれこれ試行錯誤した末にGitHubで漁った適当なコードを動かしてみたらあっさり解決。
前提としてisPortraitEffectsMatteDeliveryEnabledの設定が必要になったっぽいですね。
photoOutput.isPortraitEffectsMatteDeliveryEnabled = photoOutput.isPortraitEffectsMatteDeliverySupported
photoOutput.enabledSemanticSegmentationMatteTypes = photoOutput.availableSemanticSegmentationMatteTypes
のようにすればまた正しく動くようになりました。
AVCapturePhotoOutputってプロパティ間の整合性がおかしい時はコンソールにログを吐いてエラーになってくれるんですけどね。
なぜかここだけバリデーションがスルーされてるみたいです。
もっとGitHubを参考にする癖を身に着けないと。 ■