Skip to content
This repository has been archived by the owner on Dec 29, 2022. It is now read-only.

Latest commit

 

History

History
33 lines (25 loc) · 2.59 KB

README.md

File metadata and controls

33 lines (25 loc) · 2.59 KB

Multi Cam

Example 1
Example 2

iOS 13 から使えるようになった AVCaptureMultiCamSession を使って、複数カメラデバイスで同時にビデオ録画するアプリです。

  • 検証端末 : iPhone 11 Pro Max
  • 検証 OS : iOS 13.0・iOS 13.1
  • 撮影される動画ファイルの仕様 : 1920x1080px・29.58fps (バックカメラ・フロントカメラともに同じ)

既知の問題

  • iPhone 11 Pro Max には合計4つのレンズが付いているが、4つを同時に使用することができなかった
    • AVCaptureDevice.DiscoverySession#supportedMultiCamDeviceSets で利用可能なデバイスの組合せを見ると、最大で3カメラ分までの定義しか見つからない
    • 無理やり4つ目のカメラを追加しようとすると、4つ目の addInputWithNoConnections() 実行時にエラーになる。
      • self.avCaptureMultiCamSession.addInputWithNoConnections(avCaptureDeviceInput)
      • *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[AVCaptureMultiCamSession addInputWithNoConnections:] These devices may not be used simultaneously. Use -[AVCaptureDeviceDiscoverySession supportedMultiCamDeviceSets]'
    • 参考 : https://gist.github.com/Neos21/1ef84b2114a9946663e130ffd210b742
    • 現時点では、最大3つのレンズでの同時撮影が可能
  • バックグラウンドに移ると、デバッグコンソールに以下のエラーが出力されている
    • Can't end BackgroundTask: no background task exists with identifier 1 (0x1), or it may have already been ended. Break in UIApplicationEndBackgroundTaskError() to debug.
    • Apple 公式のサンプルコード AVMultiCamPiP: Capturing from Multiple Cameras でも同じエラーが表示されていた
    • 解決方法不明
  • 作者の Swift ちから不足によるバギーな挙動
    • アプリがバックグラウンドに移動した時の処理やエラーハンドリング、iPhone 11 Pro Max 以外の端末で動かした場合の処理が不十分
    • うまくカメラが起動しなかったり、フォトライブラリへの保存に失敗する場合があったり…
    • プルリクで助けてください

Links