DualCam

iPhone のデュアルカメラアプリでカメラの権限を拒否するとどうなるか

デュアルカメラアプリを初めて開いたとき、カメラの権限ダイアログで反射的に、あるいは何の話か理解する前に「許可しない」をタップしてしまっても、アプリがクラッシュしたり、閉じれば済むエラーが出たりするわけではありません。アプリにはただ、見せるものが何もなくなるだけです。デュアルカメラアプリも単眼カメラアプリと同じ iOS の権限システムに依存していますが、必要なのが1系統ではなく2系統のキャプチャストリームである以上、拒否したときに実際に何が起きるかは、写真アプリ向けに書かれた一般的な「カメラ権限が拒否された場合」の対処法とは分けて理解しておく価値があります。

結論を先に言うと、カメラ権限はデュアルカメラアプリが回避したり、マイクのように黙って迂回したりできる対象ではありません。この機能全体が依存している、唯一の入力だからです。

マイクと違い、カメラのアクセスには選択の余地がない

デュアルカメラアプリが動作するには、カメラ権限がそもそも前提条件です。「前後同時録画」というものが、システムから両方のカメラデバイスを受け取らずに成立するバージョンは存在しません。マイク権限は性質が異なります。たとえば DualCam は、マイクが拒否された場合それを迂回する作りになっていて、キャプチャセッションを構成する際に音声パスをまるごと省略し、ミュートモードを強制的に有効にして、録画自体は音声なしの動画ファイルとして通常どおり続きます。カメラにはこれに相当する回避策がありません。音声はアプリの上に載る任意のレイヤーですが、映像はそもそもの出力そのものだからです。

この非対称性こそが、カメラ権限の拒否がマイク権限の拒否よりも「壊れている」ように感じられる理由です。片方はトラックを1本オフにするだけ、もう片方は録るべきものそのものを取り去ってしまいます。

2つのダイアログは別々に尋ねられ、別々に反映される

iOS はカメラとマイクをそれぞれ独立した保護対象のリソースとして扱い、それぞれに固有の許可状態、固有のシステムダイアログ、そして「設定」内の固有の項目を持ちます。片方を許可しても、システムはもう片方について何も判断しません。だからこそ、カメラを許可してマイクを拒否すれば正常に再生できる無音の録画が得られ、逆にマイクを許可してカメラを拒否すれば「録画」と呼べるものが何も得られない、という組み合わせが起こり得ます。2つの判断は連動しておらず、アプリ側がそれをひとつの質問にまとめたくてもできません。

ダイアログ自体は、アプリがそのキャプチャデバイスを実際に使おうとした最初の1回だけ、自動的に表示されます。一度拒否すると、アプリは自分自身のインターフェースから再度尋ねることを許されません。iOS 上のカメラ系アプリはすべて同じ壁にぶつかります。アプリがループ状に何度も尋ね直せてしまうことこそ、この権限システムが防ごうとしているパターンだからです。

実際に何が見えるか、そして真っ黒な画面は「不具合報告」ではない

カメラの許可がない状態では、キャプチャセッションが何かに渡せるライブフレームがそもそも存在しません。プレビューもありませんし、もちろん欠けている側と合成するための、もう一方の映像もありません。きちんと作られたデュアルカメラアプリであれば、真っ黒な、あるいは固まったままの画面を前に「端末自体が壊れたのでは」と悩ませるのではなく、その旨をはっきり伝えるはずです。DualCam がここで従っているのも、端末がマルチカメラのハードウェア要件を満たさない場合にその旨をはっきり伝え、決して結果を出せないカメラ画面を見せて取り繕ったりしないのと同じ姿勢です。

使っているアプリが何も表示せず、何も言わない場合は、もっと込み入った原因を疑う前に、まず権限の問題を疑う価値があります。実際のハードウェアやソフトウェアの不具合よりも、こちらのほうがはるかによくある原因です。

他の設定を失わずに直す

カメラのアクセス許可は iOS の「設定」の中にあり、そのアプリ自身の項目の下、または「設定 → プライバシーとセキュリティ → カメラ」の下にあります。カメラを一度でも尋ねたことのあるアプリはすべてここに並び、トグルが付いています。ここでオンにしても、アプリ側の他の設定がリセットされることはありません。保存済みの録画、直前まで使っていたレイアウト、選んでいたフィルターはそのまま残ります。権限はアプリの内部にある設定ではなく、アプリの手前に立つシステムレベルの関門だからです。

そのあとにやっておく価値があるのは、アプリを単に前面に戻すのではなく、いったん完全に終了してから開き直すことです。マルチカメラのキャプチャセッションは通常、起動時にその瞬間得られる権限をもとに一度だけ構築されます。DualCam がマルチカメラのハードウェア対応判定をまさにそのタイミングで行っているのも同じ理由からです。アプリがすでに動いている最中に許可した権限は、途中でアプリが気づいてくれることを期待するより、新規に起動し直して確実に反映させるほうが安全です。

マイクの話は別の記事で読む価値がある

問題になっているのが映像ではなく音声の権限である場合、結果は本当に違います。デュアルカメラアプリはマイクへのアクセスを失っても、無音の動画録画アプリとして動作を続けられます。これは場当たり的な回避策というより、きちんと説明されたモードのひとつです。そのケースと、あとから音声を取り戻す方法については、ここで繰り返すのではなく別の記事にまとめてあります。2つの権限は壊れ方が異なり、ひとつにまとめず、別々の答えとして理解する価値があります。

よくある追加の疑問

カメラ権限を拒否すると、デュアルカメラアプリはクラッシュしますか。

いいえ。アプリ自体は動き続けます。ただ、表示または録画できるカメラ映像が何もないだけです。許可がない状態でシステムがライブストリームを渡すことは決してないからです。画面上の見え方はアプリの作り込み次第で、きちんと作られたアプリなら空白や固まったプレビューを放置せず、はっきり理由を伝えます。

マイクを拒否するのも同じ種類の問題ですか。

いいえ。デュアルカメラアプリは拒否されたマイクを迂回し、無音の動画ファイルとして録画を続けられます。音声は録画そのものの上に載る1本のトラックにすぎないからです。カメラにはこれに相当する回避策がありません。映像がそのまま出力のすべてだからです。

設定でカメラ権限を許可したあと、アプリを再起動する必要がありますか。

再起動するのがもっとも安全です。マルチカメラのキャプチャセッションは通常、起動時にその時点で得られる権限をもとに一度だけ構築されるため、たった今変更した権限を確実に反映させるには、アプリが動作中に気づくことを期待するより、新規に起動し直すほうが確実です。

とにかく撮ってみたいなら

DualCam は iPhone の前面・背面カメラを同時に動かし、撮りながら 1 本の MP4 に合成します。無料、アカウント不要、広告なし、映像は端末の外に出ません。

App Store でダウンロード