オリジナル情報源
このページは、次の情報を日本語に翻訳したものです。お役に立てば幸いです。
requestAccess(for:completionHandler:)
AVFoundation
宣言
必要に応じて、指定されたメディアタイプを記録するためのユーザーの許可を要求します。
class func requestAccess(for mediaType: AVMediaType, completionHandler handler: @escaping (Bool) -> Void)
パラメーター
mediaType
メディアタイプ定数で、video
またはaudio
。メディアタイプが指定されていない場合、invalidArgumentException
がスローされます。
handler
許可、または拒否されたときに、1回だけ呼び出されるブロック。
完了ハンドラーは、任意のディスパッチキューで呼び出されます。結果として、UIKit関連の更新がメインキューまたはメインスレッドで呼び出されるようにするのはクライアントの責任です。
ブロックは次のパラメーターを受け取ります。
granted
ユーザーがハードウェアを使用する許可を与えると、true 、それ以外の場合は、false
が返されます。ブロックはすぐに戻ります。
ディスカッション
オーディオまたはビデオの録音には、常にユーザーからの明示的な許可が必要です。許可が必要なメディアタイプのAVCaptureDeviceInput
オブジェクトを初めて作成すると、システムは自動的にアラートを表示して記録許可を要求します。または、このメソッドを呼び出して、指定した時間にユーザーにプロンプトを表示することもできます。
重要
アプリは、NSCameraUsageDescriptionまたはNSMicrophoneUsageDescription Info.plist キーを使用してキャプチャデバイスの使用について説明する必要があります。iOSは、最初にユーザーに許可を求めるときにこの説明を表示し、その後、”設定”アプリ に表示します。使用法の説明なしで、このメソッドを呼び出すか、キャプチャセッションを開始しようとすると、例外が発生します。
ユーザーがアクセスを要求されている間、この呼び出しはブロックされず、クライアントは実行を継続できます。アクセスが許可されるまで、メディアタイプのいずれのAVCaptureDevices は、無音オーディオサンプルまたは黒いビデオフレームとなります。ユーザーは、クライアントが最初にアクセスを要求したときにのみ許可を求められます。それ以降の呼び出しでは、ユーザーによって付与されたアクセス許可が使用されます。
ユーザーが録音権限を付与した後、システムは同じアプリで将来使用するための選択を記憶しますが、ユーザーは “設定” アプリを使用していつでもこの選択を変更できます。ユーザーがアプリの再コーディングの許可を拒否した場合、または許可のプロンプトにまだ応答していない場合、音声の録音には無音のみが含まれ、ビデオの録音には黒のフレームのみが含まれます。
このresponse
パラメーターは、ユーザーが記録の許可を付与したか拒否したかを示す唯一のパラメーターを持つブロックです。このメソッドは常にすぐに戻ります。ユーザーが以前に記録許可を付与または拒否した場合、呼び出されたときにブロックを実行します。それ以外の場合は、アラートを表示し、ユーザーがアラートに応答した後にのみブロックを実行します。
audio
で、このAVAudioSession
メソッドの呼び出しは、requestRecordPermission(_:)
メソッドの呼び出しと同じです。