iOS
 Computer >> コンピューター >  >> プログラミング >> iOS

iOSでフロントカメラとリアカメラを同時に使う方法はある?実現可否と解決策を徹底解説

iOSアプリ開発において、フロントカメラ(インカメラ)とリアカメラ(アウトカメラ)を同時に扱いたい場面は少なくありません。しかし、従来の標準的な手法では、両方のカメラに同時にアクセスすることができません。本記事では、その理由とApple公式の見解、そしてiOS 13以降で利用できる解決策について詳しく解説します。

なぜ両方のカメラを同時に使えないのか

最大の理由は、フロントカメラとリアカメラがそれぞれ独立したキャプチャセッションを持っている点にあります。AVCaptureSessionは一度にひとつのカメラ入力しか扱えないため、片方のセッションを開始した瞬間に、もう片方のセッションは停止してしまう仕組みになっています。

Apple公式の見解

この件について、Apple DeveloperフォーラムではAppleサポートチームが次のように回答しています。

「アプリはフロントカメラとリアカメラから同時にキャプチャすることはできません。片方からもう片方へ切り替えることは可能ですが、その際には短い遅延が発生します。両方を同時に使用することはできません。」

iOS 13以降の解決策:AVCaptureMultiCamSession

とはいえ、諦める必要はありません。iOS 13で導入されたAVCaptureMultiCamSessionを使用すれば、対応デバイスにおいて複数カメラの同時キャプチャが可能になりました。ただし、対応しているのはiPhone XS / XS Max以降など、マルチカメラ同時撮影に対応した一部のモデルに限られます。

実装時の主なポイントは以下のとおりです。

  • 通常のAVCaptureSessionではなく、AVCaptureMultiCamSessionを生成する
  • フロント・リアそれぞれのAVCaptureDeviceInputをセッションに追加する
  • 各入力に対して個別のAVCaptureVideoDataOutputを設定する
  • 実装前にisMultiCamSupportedプロパティで、端末がマルチカメラに対応しているかを必ず確認する

まとめ

従来のAVCaptureSessionでは、フロントカメラとリアカメラを同時に使用することはできず、切り替えの際にも短い遅延が発生します。しかし、iOS 13以降で提供されたAVCaptureMultiCamSessionを活用すれば、対応デバイス上で同時キャプチャを実現できます。非対応デバイスへの配慮が必要な場合は、カメラ切り替え処理やピクチャーインピクチャ(PiP)風のUI設計といった代替案も検討するとよいでしょう。

  1. iOS 13とwatchOS 6でサイクルトラッキングを設定・活用する完全ガイド

    Appleは毎年、ヘルスケアとフィットネス分野で新たな可能性を切り開き続けています。2019年のAppleイベントでも数々の新機能が発表されました。なかでも女性ユーザーにとって見逃せないのが「サイクルトラッキング」機能です。標準の「ヘルスケア」アプリ内で生理周期を手軽に記録・管理できるこの機能は、iOS 13とwatchOS 6の両方に対応しています。 従来の生理記録アプリを使っている方も、Apple Watchのこの新機能にきっと魅了されるはずです。ここでは、iPhoneとwatchOS 6でサイクルトラッキングを設定する方法をわかりやすく解説します。 Appleのサイクルトラッキングが重要

  2. iOS 13でNFCタグを読み書きする方法|iPhoneでの設定手順をわかりやすく解説

    近年のスマートフォンには、端末同士で情報をやり取りできる「NFC」という機能が搭載されています。NFCは「Near Field Communication(近距離無線通信)」の略称で、スマートフォンとの間で情報を送受信できる無線通信技術のことです。 この機能を使えば、製品やサービス、観光名所などに関する情報に瞬時にアクセスできます。デバイスをワイヤレスで接続するには、NFCに対応したスマートタグ、いわゆる「NFCタグ」が必要です。 本記事では、NFCタグの基本知識から、iPhone(iOS 13)を使ったNFCタグの読み書き方法まで、詳しく解説します。 NFCタグとは? NFCタグとは、NFC