ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。
-
iPadOSアプリで外部カメラをサポート
AVFoundation capture classesを使用しiPadOSアプリで外部カメラに接続する方法を学びます。外部及び内蔵カメラの両方からのビデオを回転させる方法や、USB-Cで外部マイクをサポートし、オーディオルーティングする方法をご紹介します。電話サポートやエコーキャンセレーションの調整、そして外部カメラの適応におけるベストプラクティスを探求します。
リソース
-
ダウンロード
♪ ♪
こんにちは「iPadOSアプリで 外部カメラをサポート」にようこそ Camera Softwareチームの Nikolas Geloです ここではiPadアプリで 外部カメラを使用する方法をご紹介します Stage Managerのパワフルな機能の一つに iPadの画面を幾つもの画面に 拡張する機能があります iPadOS 17では Apple Studio Displayのような 外部カメラを使用できます このiPad ProでFaceTimeが開いており 接続されているディスプレイの カメラを使用しています これによりこの大きい Apple Studio Displayで アプリを使用している時に 対話相手はいい角度で私を観れます またCenter Stageで 動いてもフレームに収まります
FaceTimeとCode Scannerと WebKitは外部カメラを使用し アプリに何が可能かのいい例です Apple Pro Display XDRのように 内蔵カメラがない場合 USBカメラを上に置き使用します USBカメラがディスプレイに繋がっていれば それをiPadに接続すると そのカメラも使用できます iPadアプリで外部カメラや Webカメラを使用し 写真やビデオを撮ることができ コントロールセンターから Portrait Blurや Studio Light video effectsなど ほかのカメラ機能もサポートします
USB-CのあるiPadは 外部カメラをサポートします USB Video Classもしくは UVC規格に順応する デバイスを使用できます UVCはビデオストリームをサポートする USBデバイスの基準を定義します 多くの人気カメラが使用できます カメラがマイク内蔵の場合 それもアプリで使用できます UVC規格に順応する カメラ以外のデバイスを作るメーカーもあり 幾つものインプットから 1つのアウトプットにストリームする HDMI switchersがその例です iPadOSはこれらのデバイスにも対応します 外部カメラサポートはiPadの メディアエコシステムを拡大します アプリでどう使用するかについて まず知見や方法についてお話しします 次に動画回転の謎を解明します そして外部カメラのマイクを アプリでどう使用するか説明し 最後にベストプラクティスをご紹介します 最初はiPadアプリで 外部カメラを使用する方法についてです iPadアプリは カメラの様々な機能を使用します 写真や動画を撮ったり ネットワーク越しにビデオ電話も可能です AVFoundationフレームワークで 内蔵及び外部カメラをアプリに使用でき AVCapture-prefixed classesを使用します ではその概要を見てみます まずアプリはカメラとマイクを表す AVCaptureDevicesを使います AVCaptureDeviceInputsに包まれ AVCaptureSessionに差し込まれます AVCaptureSessionはAVCapture graphの 中央制御オブジェクトです AVCaptureOutputsが様々な形で データをレンダーします MovieFileOutputは QuickTimeビデオを録画します PhotoOutputは高画質画像と Live Photosを捉え VideoDataOutputや AudioDataOutputのようなData outputsは カメラやマイクからアプリに ビデオ・オーディオバッファを送ります またMetadataやDepthのような ほかのdata outputsもあります Live camera previewには 特別なタイプがあり AVCaptureVideoPreviewLayerは CALayerのサブクラスです データはAVCaptureConnectionsを通し capture inputsから 互換性あるoutputsへ流れます これらのクラスはiOSとmacOS 及びtvOSで使用できます
もしAVCaptureに馴染みがないなら developer.apple.comの Capture Setupページをご参照ください iPadOS 17からAVCaptureで アプリは外部カメラにアクセスできます 既にアプリが内蔵カメラを使用するなら 簡単な最新化で外部カメラを使用できます 外部カメラの存在を見つける簡単です AVCaptureDevice instanceで 外部カメラが示されます これらは既存APIで発見できます AVCaptureDeviceと AVCaptureDevice.DiscoverySessionです AVCaptureDeviceには 3つの主な属性があります Media typeとdevice typeとpositionです 外部カメラは内蔵カメラ同様 video media dataを提供します Device typeはexternalです 外部カメラに馴染みのある macOSアプリデベロッパには external unknownデバイスタイプを deprecatesします 外部カメラはiPadと独立して動かせるため device positionはunspecifiedです これらの3つの属性を使って AVCapture APIで外部カメラを発見できます 外部カメラをアプリに使うのは簡単です ここでは人気のサンプルカメラアプリ AVCamを変更し Apple Studio Displayの外部カメラで ストリームできるようにします このセッションで行う変更を含んだ 完成版AVCamは developer.apple.comで ダウンロードできます 現在 アプリは内蔵カメラを使用し ボタンを押すと 前面カメラと後部カメラが 切り替わります AVCamを起動すると 後部カメラが開きます コードを変えて内蔵カメラより先に 外部カメラを探すようにします
Apple Studio DisplayをiPadに接続し アプリを起動すると 外部カメラに繋がるようになります
できましたね わずか数行のコード変更で 外部カメラを使えるようになりました AVCaptureVideoPreviewLayerは デフォルトで外部カメラをミラーし Apple Studio Displayで カメラを使用するのに最適です この性質を無効にすることもできます このビデオの最後のベストプラクティスで 説明します ではアプリをiPadの画面に動かします
試しに外部カメラを外してみます
おっと プレビューがフリーズしました 今 カメラは使っていません AVCamは外部カメラの 接続・切断においてもう少し 変更が必要です 外部カメラはユーザーがiPadから いつでも接続・切断できるため 特別なケアが必要になります いつカメラが使用可能・不可能になったか アプリはイベントを モニターできます 同じデバイスが再接続されると AVCaptureDeviceの 新しいinstanceで示されます 接続・切断をモニターする 既存のAPIをアプリが使用できます
カメラの接続・切断状態を更新する AVCaptureDevice.isConnectedプロパティか AVCaptureDeviceDiscoverySession .deviceプロパティを key-value observeすることができます またAVCaptureDevicesは 接続状態が変わると通知を表示でき アプリはカメラの状況モニターに それらを監視できます システムはkey value observationコードの呼び出しと 通知の掲示を background queuesで行います AVCaptureSession queueと メインスレッドの操作を 同調させてください
AVCamに戻って外部カメラの 接続・切断イベントを モニターするコードを追加します アプリがdefault deviceを探した後 いつカメラが切断されたか監視します 切断されるとAVCamは 内蔵カメラに切り替えます これでアプリを起動すると まだ外部カメラを使用し 切断するとアプリは 内蔵カメラに切り替わります
しかし外部カメラを再接続しても AVCamは切り替わりません
動作中に接続された外部カメラを どう扱うべきか? 切り替えるべきでしょうか? 外部カメラのアプリへの適応で難しいのは 接続・切断イベントをどう扱うかです これを簡単にするため Automatic camera slection APIを ご紹介します このAPIは最適のカメラを使用するため アプリをシステムと統合させます カメラを切り替える別の方法になります macOS Venturaでは Continuity Cameraのために automatic camera selection APIを 紹介しました ここで説明する性質はiOS特有のものです このAPIをMacで使用するには WWDC22の「Bringing Continuity Camera to your macOS app」の中の 「Building a magical experience」を ご覧ください
Automatic camera selectionは iOSのAVCaptureDeviceに登場した 2つの新しいclassプロパティを使用します userPreferredCameraと systemPreferredCameraです 両プロパティともkey-value observableです
userPreferredCameraは read/writeプロパティで どのカメラを使うべきか ユーザーの選択を示します ユーザーがアプリで カメラを選ぶ度に設定されるべきです これによりユーザーの志向性を学べます
systemPreferredCameraは read-onlyプロパティで システムが決めた最適のカメラを示します デフォルトでは前面カメラを勧めますが 後部カメラを使用したいなら その希望する性質をシステムに伝えられます ユーザーが違うカメラを選ぶと その推薦も変わります でもシステムはなぜ どのカメラが最適かわかるのか 後でご説明します まずAVCaptureDeviceの userPreferredCameraプロパティからです このプロパティではシステムは システム再起動を通して各アプリが 選んだカメラの履歴を保存します これによりユーザーの履歴と どのカメラが現在接続されているかの システム知識をアプリが結合でき カメラが切断されると システムはユーザーの履歴に基づき 次のカメラを返します
ユーザーの選択履歴がないか カメラが接続されていない場合 システムはいつでも使用可能なカメラを返し 以前ストリームに使用されたカメラを 優先します アプリはこのプロパティでユーザーの カメラ嗜好を記録します
AVCaptureDeviceの systemPreferredCameraプロパティは 最適のカメラを知的に返します まずユーザーの嗜好をチェックし ユーザーがiPadに外部カメラを接続すると システムは新デバイスを返します ユーザーが新しいカメラを接続するのは それを使用する意図を 暗に示しているからです これらのインプットで systemPreferredCameraが決まります Automatic camera selection APIは アプリがシステムと どう統合するか選択できます 外部カメラのサポートはiPadだけですが iPhoneアプリもユーザー嗜好の カメラの保管にAPIを使用できます カメラが変更できるアプリもあれば 変更ができないアプリもあります APIはカメラの選択でアプリに 自動と手動を選択させることができます FaceTimeとCode Scanner そしてWebKitは 必要に応じて違った カメラ選択性質を持ついい例です FaceTimeが起動すると いつも前面か外部カメラを使用します 通話中は内蔵カメラを 切り替えることができます しかし外部カメラを使用すると 切り替えボタンが消滅します FaceTimeはデバイスが変わる時 userPreferredCameraを設定し この性質を可能にし 外部カメラが接続された時は systemPreferredCameraプロパティを 監視します またいつautomatic camera selection APIを 使用すべきか独自に判断します 例えばFaceTimeビデオ電話で 後部カメラを使用できますが コールリストを示すメイン画面では 常に前面か外部カメラを使用します コントロールセンターにある Code Scannerは 性質が違います 起動すると後部カメラを使用し カメラの変更ができませんが systemPreferredCameraプロパティに 耳を傾け 通知があれば切り替えます WebKitフレームワークはwebページに iPadのカメラへのアクセスを許可します どのカメラにも変更はできますが systemPreferredCameraを リストのトップに返します Automatic camera selectionの 仕組みをお見せしたところで AVCamでそのサポートを足してみましょう AVCamは写真と動画が撮れる 伝統的な写真アプリです FaceTimeやCode Scannerのような コミュニケーションや ユーティリティアプリ WebKitのような システムフレームワークとは違います フォールバック付きの外部カメラの検索に 幾つものif else if文を使う代わりに AVCamは1行だけで systemPreferredCameraが得られます Automatic camera selection APIを アプリが使うのはこれが初めてなので システムは内蔵前面カメラを返します しかしAVCamは 後部カメラの起動を望みます systemPreferredCameraの前に アプリのUserDefaultsに保存された値を探し これが初めてのクエリかどうかを確認します 値が保存されていなければ automatic camera selectionの 初期状態が設定されていません ですのでこれが初めての起動なら 後部カメラを UserPreferredCameraに設定します AVCaptureDeviceDiscoverySessionで deviceTypesを使い デバイスのリストから アプリが後部カメラを発見します そしてUserPreferredCameraを設定し ユーザー設定に その値を保存します この設定は一度だけです 外部カメラの接続と切断に関しては 特定のカメラの接続状況を 監視しなくてもいいようになりました その代わりにAVCam key valueが systemPreferredCameraを監視します これにより最適のカメラに切り替わります KVOにおいては アプリは新しいsystemPreferredCameraを 得て切り替わります でもAVCamが録画中はどうなるでしょう? カメラの切り替えで 録画を中断すべきではないため 録画の最中でなければ 切り替えが可能になります 録画が終われば アプリはsystemPreferredCameraをクエリし 現在使用しているものと違うか確認します もしsystemPreferredCameraが変われば アプリが切り替えます これで録画を中断しません これらの決断は 外部カメラとautomatic camera selection APIを採用時に決定します アプリに最適なものを選びましょう AVCamにはカメラの切り替えボタンがあり 前面と後部カメラを切り替えます このiPad Proでは両方の位置で 使えるカメラが幾つかあります AVCamにはどこでどのカメラを使うかを 選ぶ論理があります 外部カメラのサポートで このボタンはどう作動すべきでしょう? 私は外部カメラを前面カメラとして扱います Apple Studio Displayの内蔵カメラは iPadの前面カメラのように 私の方を向いているからです changeCamera functionに 切り替わるデバイスがなければ アプリは現在のデバイスの位置を確認します 現在のデバイスの位置を確認する switch文で 現在unspecifiedかfrontで使用しているなら アプリは後部カメラを探します 外部カメラは位置を unspecifiedで報告します もし後部カメラを使用しているなら 使用可能なら外部カメラに切り替えます それ以外は内蔵前面カメラに切り替わります アプリは外部カメラの発見に AVCaptureDeviceDiscoverySessionを deviceTypesはexternal mediaTypeはvideo positionはunspecifiedを使います
そしてswitch文で 現在のdevice positionがbackなら まずexternal Cameraを探します もし見つからなければ 内蔵の前面カメラに切り替えます そしてアプリが 使用したいカメラを見つけると AVCaptureDeviceで userPreferredCameraプロパティを 設定しシステムに伝えます このプロパティの設定で システムはユーザーの嗜好を学びます アプリがどう外部カメラをサポートし どう切り替えさせるか 決めることができます AVCamではユーザーが 外部カメラを後部カメラとして扱うことで 前面・後部・外部カメラから 選べるようにします こうすればカメラ切り替えボタンは 2つのデバイス間だけで代わります 後少しでAVCamは 外部カメラをサポートできます することはもう1つだけです これまでAVCamは iPadを横置きにし USB-Cポートを右側にして使用していました iPadを回転させると 外部カメラのプレビューが逆さまです
でも外部カメラは動いていません iPadだけです
AVCamは内蔵カメラでは この問題はありません これはiPadとは別にある外部カメラを どう位置付けすればいいか アプリはわからないのです 外部カメラのビデオプレビューを 正しく映すために 更にAVCamに変更が必要です ではプレビューや撮った写真やビデオが 正しく映されるための 動画回転の重要性についてお話しします 動画回転はカメラアプリで既存の概念です しかし外部カメラはiPadから 独立していることを理解せねばなりません アプリは内蔵カメラに慣れています そのためiPadの向きに依存し AVCaptureVideoOrientation enumで 画像の向きを変えます これは先程のデモで AVCamがしていたことです iPadの向きに合わせて 外部カメラを回転させようとしたのです iPadOS 17では AVCaptureVideoOrientationと それを使うAPIは使用されません iPadがどの向きかを記述し カメラがデバイスと共に 回転すると推測するためで 動きが違う外部カメラの向きを 表現するには不十分です このenumを使用するため iPadを記述しカメラの向きの 間接的信号である UIDeviceOrientationから転換します そこで動画回転を処理する 新しいAPIを紹介します iPadOSを含む全OSで新登場の AVCaptureDeviceRotationCoordinatorは どのカメラも適切に向きを合わせます クラスのinitializerが AVCaptureDeviceと ビデオプレビューを映すCALayerを オプションとして得ます アプリはしばし AVCaptureVideoPreviewLayerか AVSampleBufferDisplayLayerで プレビューを映します 両方ともCALayerのサブクラスで initializerにパスできます Metalなどを使うアプリは プレビューを映すUIViewのレイヤーを 単にパスできます Coordinatorには2つプロパティがあります videoRotationAngle ForHorizonLevelPreviewと 別のAngleForHorizonLevelCaptureです 両read-onlyプロパティは 角度をdegreesで返し key-value observableです
Horizon-levelの プレビュー及びキャプチャは デバイスが縦向きでも横向きでも 逆さでも カメラからの映像は重力に対し 垂直に映し出されます
videoRotationAngle ForHorizonLevelPreviewは coordinatorのinitializerにパスした CALayerでのビデオ表示に使用します プレビューにどれだけ回転を 適用するか記述します 角度はUIKitとSwiftUI 座標システムに比例します
videoRotationAngle ForHorizonLevelCaptureは アプリの写真・動画撮影を許し 後に誰かが見ると常に垂直に表示されます このプロパティは カメラの実際の向きを記述します 値はアプリがプレビューで要する角度と 違うかもしれません これらのプロパティの目的は違います 動画回転の説明に みなさんに馴染みのある 内蔵カメラでのシナリオを使います 後程AVCamを変更する際 これらの概念がどう外部カメラに 適応するか説明します iPhoneの「カメラ」アプリは horizon levelの プレビューとキャプチャの 動画回転角度の違いのいい例です この後部カメラのプレビューの例では iPhoneは縦向きです UIKit座標システムの原点は 描画エリアの左上隅で X軸正方向は右側に Y軸正方向は下側に伸びます 後部カメラの座標システムは 原点が違います カメラセンサーはまず高さ沿い そして横をスキャンします カメラの実際の向きを計算するため アプリはプレビューのため カメラのフレームを90度回転させます またキャプチャする写真と動画も 見た時に正しい向きであるよう回転させます iPhoneが横向きの時は違います デバイスの向きに関わらず アプリのインターフェイスは縦向きです これはHome Indicatorの位置で確認できます iPhoneの「カメラ」では 常にポート側にあります UIKitの座標システムの原点は まだ描画エリアの左上隅で この場合アプリのインターフェイスが 一方向しかサポートしないため 常にデバイスの同じ場所になります 後部カメラセンサーの座標システムは まだインターフェイスと異なります アプリは縦向きしか表示しないので iPhoneがどの向きであれ プレビューには常に 90度の回転を適応します しかしiPhoneが横向きの場合 写真や動画を撮ると アプリは違う量の回転を適応します iPhoneがカメラセンサーの本来の向きなら アプリは写真や動画を 正しく表示するための回転は必要ありません 回転の話で頭がスピンしますね でもAVCaptureDeviceRotationCoordinatorが この複雑さを処理し すべてのカメラでのプレビューや キャプチャでの正しい角度を提供します 自分で計算するよりこれを信頼してください カメラの切り替えの際 新しいrotation coordinatorを 作ってください 動画回転には AVCaptureConnectionのAPIで coordinatorが提供する角度を使用します 動画及びdepth media dataを伝える コネクションだけが回転をサポートします サポートするかどうかは isVideoRotationAngleSupportedメソッドを コールします 回転を実行させるには videoRotationAngleプロパティを サポート値に設定します videoRotationAngle ForHorizonLevelPreviewを プレビューの表示に使います AVCaptureVideoPreviewLayerを 使うアプリはプロパティ値を AVCaptureConnectionインスタンスの videoRotationAngleに適応できます またCALayerのVideoDataOutputから バッファを表示する時にそれを使用できます System animationsを同期化するために アプリのkey value observation codeで すぐにプレビュー回転を変えます インターフェイスの最新化には アプリはmain queueで 更新を受け取ります すべてのアプリが AVCaptureVideoPreviewLayerを 使用するわけではありません カスタム効果やフィルタを適用する時に VideoDataOutputバッファを 表示するアプリもあります カスタムプレビューの表示には AVSampleBufferDisplayLayerを使用します VideoDataOutputの AVCaptureConnectionで 角度を設定し回転を要求するのを避けます キャプチャレンダーパイプラインが 新しい回転の適応のため 設定し直すためコネクションの角度の変更は frame deliveryを中断します その代わりにプレビューを表示する CALayerを回転します これでアプリのプレビューが スムーズに回転します videoRotationAngle ForHorizonLevelCaptureを使用し 写真・動画撮影時に 重力に対し水平であるようにします アプリはcapture connectionsの プロパティ値を PhotoOutputか MovieFileOutputに適用できます またアプリがカスタム動画の録画に AVAssetWriterで video data outputを使用する場合 AVCaptureConnectionでの 動画回転は避けましょう その代わり AVAssetWriterInputインスタンスの transformプロパティで回転を設定し 出力ファイルのメタデータを変更します この方法ならアプリは再生中に回転を適応し capture connectionで各フレームを 回転するより動力を使いません AssetWriterInputは ラジアンで回転を適応する CGAffineTransformを使用するため アプリは回転角度を 度数から変換せねばなりません Outputによってはオーバーヘッドなく 効率的に回転を適応します 例えばMovieFileOutputは QuickTime track matrixで回転を適応します PhotoOutputはExif tagsで 方向を処理します またPreviewLayerは回転の実行に コンテンツを変換します しかしVideo及びDepthDataOutputで 回転を実行する場合 バッファの回転にメモリと力を使うため デバイスの電力消費が 増加するかもしれません その代わりVideo及びDepthOutputsからの バッファをプレビューする CALayerを回転すればより効率的です
AVCaptureDeviceRotationCoordinatorを iOSやtvOSやmacOSなど すべてのプラットフォームで使用しましょう Mac Catalystと Mac上のiOSアプリでも使用できます RotationCoordinatorで 写真や動画の向きを正し どのカメラのプレビューも表示できます またStage Managerや 外部ディスプレイでの 複雑な配置を処理できます ではAVCamで外部カメラを サポートするための最後の変更です キャプチャセッション設定時 アプリはカメラプレビューを設定します つまりDeviceRotationCoordinatorを作り プレビューとキャプチャに必要な 回転角度をアプリに提供します Coordinatorを作る時 アプリはプレビューの現回転角度で PreviewLayerを更新します また角度の変化を監視し プレビューを更新します
AVCamがデバイスを切り替えると 新しいRotationCoordinatorを作り プレビューが正しく見えるようにします
写真を撮る時アプリはキャプチャに 回転角度を使い 誰かが後で見た時に 正しい向きであるようにします 動画の録画でも同じです これらの変更で AVCamは外部カメラをサポートできます iPadを回転させれば 外部カメラも正しく表示されます
たくさんカバーしましたが きっとご理解されているはずです iPadでの外部カメラの使用方法を カバーした次は これらのデバイスに含まれる マイクの使用方法についてです マイクを含むWebカメラなどがあります iPadに繋ぐとアプリで使用できます iPadOS 17ではUSB-C装備のiPadの 外部マイクサポートを 向上させました Core AudioのAUVoiceIOを使う Telephonyアプリは Webカメラやディスプレイに含まれる 外部マイクを使用できます これまでアプリが使用できる 有線デバイスは ヘッドセットのマイクだけでした AUVoiceIOはエコー除去を実行できる 人気のインターフェイスで 外部マイクのための 新チューニングが加わりました コントロールセンターにある 「声を分離」モードは キーボードのタイプ音やマウスのクリック 近所のリーフブロワーの音など 周囲の雑音を遮断します このシステム機能を 外部マイクでも使用できます iOS audio routing systemは 一度にマイク一つしか使用できません また最後に繋げたマイクに 自動的に変わります これはカメラの時と同様 ユーザーが新しく繋げたマイクを 使う意図があるためです iOSではマイクに AVCaptureDeviceを1つだけ返します Audio media typeでデバイスを 検索すれば見つかります またはmicrophone device typeで builtInMicrophoneを無効にします すべてのマイクは iPadに内蔵されていないからです 内蔵にしろ外部にしろ audio routing systemが どのマイクを使用するか決定します システムがinput routeを変えると AVCaptureDeviceの localizedNameプロパティが変わり 使用するデバイスが反映されます アプリはAVAudioSessionで マイクをさらに制御できます これを使いCategoryとModeを設定し アプリのオーディオ性質を設定できます またpreferredInputを設定し 外部カメラにあるマイクのように 特定のマイクも使用できます 最後のトピックはアプリに 外部カメラを使用する時の ベストプラクティスについてです 適応するにあたり アプリに何が最適かを考えましょう 先程 FaceTimeやCode Scannerや WebKitが外部カメラを 違う形でサポートすると説明しました アプリが適用するあらゆる例として 参考にしてください USB-Cポートを 外部カメラに使用している場合 iPadをXcodeの Wireless debuggingに設定しましょう 内蔵カメラで使用できる機能は 外部カメラでは無理かもしれません もしアプリの機能が depth data captureに依存している場合 外部カメラの使用中は 機能をオフにしなければなりません AVCaptureMultiCamSessionで 多数のカメラを同時に使用する場合 creative capture setupsに 外部カメラを使用できます iPadOSは前面カメラに適用する扱いを 外部カメラにも適用できます AVCaptureVideoPreviewLayerは デフォルトで外部カメラをミラーします カメラがユーザーを向いていると 問題ありませんが すべてのユースケースには適応しません HDMI switchersからのストリームや 外部カメラがほかを向いている場合 ミラー機能をオフにする オプションがあるべきです 先程 カメラの回転についてお話ししました おそらく外部カメラに動画回転を 適応する必要は少ないものの 必要な場合システムは外部カメラを 向って時計回りに回転します これは内蔵カメラの回転と同じです
機能の違うカメラに アプリを対応させましょう 例えば 2つの規格しか 対応しない外部カメラがあります 640x480のVGA形式や 1280x720のHD形式などです またiOSでは通常使用されない ピクセル形式のカメラもあります その場合iOSカメラアプリで 一般的な形式に変換されます yuvsや2vuyのような伸長された形式は 420vに変換されます またjpegやH264のような 圧縮ファイル形式は420fに変換されます 外部カメラはあらゆるサイズ形式があるため すべてのAVCaptureSession.Presetsは サポートしないかもしれません 例えばHD4Kはデバイスに 互換性のある形式が必要です AVCaptureDeviceの supportsSessionPresetをコールし presetを使用できるか確認できます アプリは外部カメラの 解像度やフレームレート ズーム度などを設定できます iPadOSはUSB Video Class規格にある 限られたカメラコントロールを サポートします それらの機能はAVCaptureDeviceを クエリしてください それではおさらいです 外部カメラの発見と使用方法 カメラのビデオフレームの回転の仕方 外部マイクの使用 そしてベストプラクティスをご紹介しました ではiPadアプリで外部カメラを 使用してみてください ありがとうございました ♪ ♪
-
-
特定のトピックをお探しの場合は、上にトピックを入力すると、関連するトピックにすばやく移動できます。
クエリの送信中にエラーが発生しました。インターネット接続を確認して、もう一度お試しください。