ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。
-
tvOS向けの連携カメラ機能
tvOS向けのアプリにAVFoundation、AVFAudio、およびAudioToolboxを取り入れ、リビングルーム向けのカメラとマイクの体験を作成する方法について紹介します。Device Discovery APIを使用して既存のiOSカメラ体験によってtvOSをサポートする方法、iPhoneをWebカメラまたはFaceTimeのソースとして使用するアプリを構築する方法、およびtvOS向けに開発する際の特別な考慮事項について確認します。また、tvOSの音声録音を有効にする方法や、エコーキャンセレーションを使用して優れた音声操作の体験を作成する方法についても紹介します。
リソース
関連ビデオ
WWDC23
WWDC22
-
ダウンロード
♪♪
こんにちは tvOS Teamの ソフトウェアエンジニアのKevinです Core Audio Teamの エンジニアのSomesh Ganeshです
このセッションでは tvOSアプリへのカメラと マイクの導入について説明します
tvOS 17ではApple TVに 連携カメラとマイクが導入されました iPhoneやiPadからカメラや マイクのデータをストリーミングし tvOS上での入力として 使用できるようになりました 大画面向けの全く新しいアプリや 体験のジャンルが開かれるのです tvOSのほとんどのアプリは一般的に 映画やテレビ番組のストリーミングのような コンテンツ再生アプリと ゲームの2つに分類されます
連係カメラはビデオやオーディオを録画する コンテンツ作成アプリや ビデオ会議やライブストリーミングのような ソーシャルアプリなど tvOS用の 全く新しいアプリが構築できます
カメラとマイクを既存の ストリーミングアプリやゲームに統合して 以前のバージョンのtvOSでは 不可能だったまったく新しい機能を 作成することもできます この機能により TV向けの 多様なアプリ体験構築が可能になります 今回は 連係カメラとマイクを tvOSアプリに 導入する方法を紹介します
昨年 macOS Venturaは iPhoneをWebカメラとして使用する 連係カメラを導入しました 電話をMacに近づけるだけで カメラとマイクが 入力デバイスとして利用可能になります macOSの連係カメラを まだご存知でない場合は WWDC 2022の本トピックに関する セッションをご覧ください
本セッションではまずtvOSで アプリがカメラやマイクに アクセスするために採用できるAPIの 概要から説明します 次に みなさんのアプリが tvOSの連係カメラを採用し iPhoneやiPadをカメラやマイクとして 使用する方法について説明します
続いてtvOSで優れたアプリ体験を 構築する方法について ほかのプラットフォーム向けの開発と 比較した場合の 類似点と相違点を 強調しながら簡単に説明します 最後にSomeshが 複雑なオーディオの 幅広いニーズに対応するため アプリで使用できる マイクAPIについて説明します
キャプチャデバイスAPIの 概要から始めましょう
AVFoundation AVFAudio およびAudioToolboxにより カメラとマイクにアクセスし ビデオとオーディオをキャプチャできます AVFoundationの AVCaptureファミリーのクラスで アプリでどのようにキャプチャ デバイスを使用するか見てみましょう
まず アプリはカメラと マイクを表すAVCaptureDevicesと AVCaptureDeviceInputsを 使用します これらはキャプチャに関連する すべてのメインオブジェクトである AVCaptureSessionに プラグインされます
AVCaptureOutputsは様々な方法で 入力からのデータをレンダリングします ムービーの録画や写真のスナップカメラ マイクのバッファにアクセスしたり 入力デバイスから その他メタデータを取得したりできます ライブカメラの映像をUIに表示するには AVCaptureVideoPreviewLayerを 使用します これはCALayerをサブクラスとする 特別なタイプの出力です データはAVCaptureConnectionsを 通じて キャプチャ入力から 互換性のある出力に流れます これらのキャプチャAPIはiOS macOSそしてtvOS 17からは tvOSでも利用可能になりました
AVFoundationのキャプチャ機能を 使った開発が初めての場合は developer.apple.comのCapture Setup スタートページをご覧ください tvOSは現在iOSで提供されているものと 同じカメラとマイクのAPIを サポートしています すでにiOS用に作られた カメラやマイクのアプリがあれば ほとんどのコードは tvOSでもそのまま使えますが 異なるAPIやコーディングの方法が いくつかあります
Apple TVには AV入力が内蔵されていないため カメラとマイクを使用する前にアプリが デバイス検出を行う必要があります これは連携するデバイスが 現れたり消えたりするような エッジケースにアプリが 対応するためのものです
またiOSとは異なる tvOSでのアプリの起動には いくつかのニュアンスがあり 最高のtvOSアプリ体験のために それらの考慮点について説明します
iOSと同じカメラとマイクのAPIが tvOSでも利用できるようになったので 既存のiOSアプリにtvOSサポートを 導入する手順を説明します
iOS用にすでに作成されたカメラと マイクの単純なアプリがあります このアプリは基本的なUIで カメラとマイクにアクセスして 写真を撮影したり ビデオやオーディオを録音したりできます 本セッションを通して 新しい連係カメラおよび マイクAPIを使って このアプリに tvOSサポートをもたらします どのように構築されているか見てみましょう
XcodeでアプリのUIが 定義されている ContentViewを開きます ここでアプリの画面に表示される 基本的なUI要素の位置を指定します 最も重要なのは CameraPreviewビューで AVCaptureVideoPreviewLayer に接続し 他のすべてのUI要素の後ろに ライブカメラのプレビューを表示します
次に AVFoundationの AVCaptureSessionクラスをラップした CaptureSessionです このクラスには AVCaptureSessionのプロパティがあり どのキャプチャ入力を選択し どこにデータを出力するか 制御するために使用されます この場合 出力は ContentViewに表示される AVCaptureVideoPreviewLayer です
CaptureSessionクラスにはアクティブな ビデオ入力を設定する関数もあります この関数ではアプリは 選択された入力を検証し AVCaptureSessionを構成し セッションを開始します これによりAVCaptureDeviceから ContentViewに表示される プレビューレイヤーへの データフローが開始されます
これらのAVCapture APIは すべてtvOSでも利用可能になったので アプリのサポートOSとして tvOSを追加しておきます
Project Navigatorで プロジェクトを選択し アプリのターゲットをハイライトして サポート先として Apple TVを追加しました
この時点で アプリを tvOS上でビルドして実行できます しかし 入力デバイスがないため このアプリでは 大したことはできないでしょう そこでキャプチャデバイスを探し tvOSで使用するために それを選択するプロセスから 連係カメラを紹介します
AVCaptureに 関連することを実行する前に みなさんのアプリが ビデオとオーディオキャプチャデバイスを 使用する権限を持っていることを 確認する必要があります これによりアプリがこれらデバイスに アクセスする必要がある理由を 説明する機会が与えられ ユーザーはアクセスの 許可または拒否ができます Info.plistでカメラとマイクの使用キーを 設定することを忘れないでください この説明はユーザーに対して 認証を求める際に表示されます
みなさんがiPhoneやiPadのような カメラを内蔵した個人デバイス用の アプリを作ることに 慣れているかもしれません しかしApple TVは それぞれのiCloudアカウントで 複数人が共有する共用デバイスです 共用デバイスで最高の体験を可能にするため ゲストも含め 対応デバイスを持っていれば誰でも 自分のデバイスを 連係カメラとして使用できます
つまりユーザーは自宅や友人の家 あるいはバケーションレンタルのような 共有スペースでも アプリの録音機能を 使うことができます また カメラはいつでもシステムから 現れたり消えたりする可能性があり アプリでそのようなケースに 対応しなければなりません
AVKit が AVContinuityDevice PickerViewController という 新しいビューコントローラーを 提供するようになりました このコントローラーを使用して カメラおよびマイクとして使用する 連携デバイスを選択できます このビューコントローラーはApple TVに サインインしているすべてのユーザーを 一覧表示し 連係カメラ用に デバイスを接続できるようにします また ゲストが Apple TVとペアリングして iOSデバイスを連係カメラで 使用する方法もあります
キャプチャデバイスにアクセスする場合 アプリで まず使用可能なデバイスがあるか 確認する必要があります 利用可能であればキャプチャデバイスで キャプチャセッションを開始し AVCaptureOutputsのいずれかに データを送信することができます 利用可能なものがない場合は デバイスピッカーを使用して 関連するUIをユーザーに提示します これにより彼らのデバイスのカメラと マイクを共有するプロセスを案内します デバイスが選択されると ビューコントローラは デリゲートコールバックを呼び出し デバイスが現れたことを知らせます その後 そのデバイスが 使用可能であることを確認し キャプチャセッションの開始を続行できます 舞台裏ではtvOSとiOSが協力して この接続を確立しています 選択が行われると tvOSはApple TVの近くにある ユーザーの対象デバイスに pingを送信し確認を求めます その後 ユーザーは通知されたデバイスの いずれかで接続を受け入れることができます
その時点でカメラとマイクが アプリで使用可能になり カメラとマイクのデータがストリーミングを 開始できるようになります
SwiftUIアプリで デバイスピッカーを表示するために AVKitがtvOS 17の新機能である continuityDevicePickerモディファイアを 提供します ほかのコンテンツ表示ビュー モディファイアと同様に その表示状態は 状態変数によって更新されます デバイスが選択され 使用可能になると ピッカーは終了し AVContinuityDeviceを 持つコールバックを呼び出します このオブジェクトは iPhoneやiPadのような 特定の物理デバイスに関連付けられた AVCaptureDevicesへの参照を持ちます
AVContinuityDevice PickerViewControllerを使用して デバイスピッカーをUIKitアプリで 表示することもできます このビューコントローラは オプションのライフサイクルイベントと AVContinuityDevice が選択されて 使用可能になったときの コールバックを提供する デリゲートを受け取ります このようなデバイスが利用可能になると キャプチャデバイスは AVCaptureDeviceDiscovery SessionやAVCaptureDevice上の KVOオブザーバなど ほかのデバイスリスナーにも公開されます tvOSでは連係カメラが 唯一のキャプチャーデバイスであることを 思い出すようにしてください つまり みなさんのアプリで カメラやマイクが使用できない状態から 使用可能な状態に移行する場合や その逆を処理する必要があります
AVCaptureDevice. systemPreferredCameraをすべての プラットフォームで使用すると 最適かつ 利用可能なカメラにアクセスできます このAPIは現在tvOSでも利用可能で まったく同じように機能します
このプロパティは カメラの空き状況に応じて更新されます 一度にApple TVに接続できる 連係カメラは 1台のみのため nil値は 利用可能なカメラがないことを意味し nil値でない場合は利用可能な 連係カメラがあることを示します systemPreferredCameraの変更を 監視するために Key-Valueオブザーバを 使用することができます tvOSでは接続されたキャプチャデバイスは continuityCamera型になります
systemPreferredCameraプロパティを Key-Valueで観察すると アプリでカメラの利用可能性に 基づき あるべき状態を再評価できます カメラが利用可能になると AVCaptureSessionを開始して ビデオまたはオーディオ録画を開始できます カメラが使用できなくなった場合 以前のキャプチャセッションから 必要なティアダウンを実行し デバイスが使用できなくなったことを ユーザーに示し 新しいカメラを接続するオプションを 与える必要があります 連係カメラが Apple TVに接続されると アプリは既存のカメラキャプチャAPIの 多くにアクセス可能になります 例えばAVCapture MetadataOutputを使えば 検出された顔や体などフレームごとの ビデオメタデータを取得できます AVCapturePhotoOutputによる 高解像度の写真のキャプチャや AVCaptureMovieFileOutputによる ビデオとオーディオでのムービーの記録 ビデオエフェクトの監視やzoomFactorの ようなカメラプロパティを制御できます tvOSの連係カメラでは さらに多くのカメラAPIが 利用できるようになりました 高度なカメラキャプチャ機能と テクニックについて 深く掘り下げた過去の動画をご確認ください これらはアプリが Continuity Captureデバイスを 検出して選択するために 採用すべきtvOS固有のAPIです この機能を今作っている アプリに導入してみましょう
Xcodeに戻って ContentViewでは デバイスピッカーの 表示状態を制御するために tvOSのステート変数が 必要であるとわかっています
先に進めてステート変数を追加し コンパイラーガードを使用して それがtvOSでのみ使われるようにします
ContentViewの下部には 連係カメラ特有のロジックを処理するための tvOS専用の機能拡張を作成します
次に計算変数を追加して 追加したステート変数をトグルして デバイスピッカーを 表示するボタンを作成します
次に 連係カメラが 接続されたときに 呼び出される コールバックハンドラを追加します 接続すると カメラがアクティブな ビデオ入力として設定され キャプチャセッションが開始されます
最後に連係カメラが すでに接続されている場合に 起動するメソッドを追加します
UIを追加していきましょう
ビュー本体に デバイスピッカーボタンを追加します
次にcontinuityDevicePicker ビューモディファイアを追加して 先ほど追加したステート変数と コールバック関数に接続します
最後にすでContinuityデバイスが 接続されている場合に それを アクティブにするタスクを追加します
これらが既存のiOSカメラアプリに tvOSサポートを もたらすために必要な コード変更のすべてです Apple TVで実行して 見え方を確認してみましょう
アプリは基本的なUIで起動しますが カメラが未接続のため カメラフィードは表示されません デバイスピッカーを表示するために 追加ボタンを選択します
これでカメラの接続オプションができました 先に進み Justinのユーザーを選択し 指示に従ってペアリングします
連係カメラが接続されています! iOSと同じ共有コードを使用し tvOSでのデバイス検出を 追加するためわずかな変更を加えただけで このアプリのtvOSバージョンは このようになります 既存のカメラAPIの使い方に 変更はありません iOSアプリのように 写真を撮ることもできます
これがtvOSの 連係カメラです
既存のアプリをtvOSに対応させる場合 あるいはtvOS開発を始めたばかりの場合 プラットフォームに関するいくつかの ニュアンスを簡単にまとめておきます
tvOSにおける最も顕著な違いは ユーザーインタラクションです tvOSには直接的な タッチイベントがありません ユーザーはリモコンのスワイプ および方向矢印 そのほかのボタンを介して フォーカスエンジンを使用し システムとインタラクションします
共用デバイスとして tvOSは複数人で使用することができ 複数のユーザーやゲストをサポートします つまり みなさんのアプリは ほかのプラットフォームと 異なる方法で個人情報を 扱う必要があるかもしれません 最後に tvOSには独自の ファイルストレージポリシーがあります これはビデオやオーディオを録画する コンテンツ作成アプリを 書いている場合は特に重要です 詳しく見ていきましょう
ディスクスペースは 共有リソースであることをお忘れなく ディスク容量の主な消費者は以下の通りです 削除できないオペレーティングシステム 設定がオンであれば一部オフロード可能な フレームワークとアプリのバイナリ そして容量の大部分は 一時データのキャッシュとして使用されます tvOSアプリは主にストリーミングのような コンテンツ消費のために作られており 非常に大きな 利用可能なキャッシュを必要とします このディスク容量モデルを維持することで すべてのtvOSアプリで 最高のユーザー体験を確保できます
iOSではFileManagerを使用して データを永続的に保存し .documentDirectoryパスに 書き込むことができます tvOSでは このAPIの使用は推奨されません
OSが大容量ファイルの 永続的な保存を許可しません .documentDirectoryは ヘッダで使用可能ですが 実行時エラーで失敗します 代わりに、tvOS用にビルドする場合 アプリでは.cachesDirectoryのみを 使用すべきです
このディレクトリのデータは アプリの実行中に利用できます しかしこのデータは アプリ起動間にディスクから 消去される可能性があります そのためデータを クラウドにアップロードするなど できるだけ早く 別の場所にオフロードし ディスク上で不要になったら 削除するのがよいでしょう tvOSにはほかにも ファイルストレージのオプションがあり マルチユーザー向けの 興味深い使用例があります 例えばCloudKitを使えば アプリのデータをユーザー単位でも iCloudに保存できます tvOSの複数ユーザー用 ストレージオプションについては 過去にも取り上げているので 詳しくはそれら動画を参照してください tvOSでの開発が初めての方は developer.apple.comの 「tvOSアプリのプランニング」ページで Apple TV向けに開発する際の さまざまな特徴や注意点を 解説していますので ぜひご覧ください これが tvOS 17の 新しい連係カメラと Device Discovery APIを使った 素晴らしいtvOSアプリ体験の構築方法です それでは tvOS 17で アクセスできる様々な マイク機能について説明します tvOS上で初めてマイクを アプリで使用できるようになります!
この機能を利用するためにアプリで 何をする必要があるのか 確認していきましょう 今年の変更点の概要は以下の通りです tvOSのAVFAudioフレームワークに Audio Sessionが追加されています
iOSのようにオーディオセッションは システムレベルのインターフェイスで アプリにおけるオーディオの使用用途を 伝える場所です 例えば 割り込みやルート変更などの 通知を登録して処理したり アプリのカテゴリや モードを設定したりします
iOSからtvOSに引き継がれた 録画API群も充実しています
これにはAVFAudioや AudioToolboxフレームワークの 録音APIが含まれます Audio Sessionから始めましょう
tvOS 17では アプリはApple TV上で 数種類のマイクデバイスを 使用できるようになります これはiPhoneやiPadのような Continuity Microphoneまたは AirPodsのようなBluetoothデバイス あるいはtvOSデバイスに 直接ペアリングできる その他のヘッドセットのいずれかです
入力デバイスの種類を 認識する方法は AVAudioSessionPortタイプです
Device Discoveryフローを実行すると audioSessionPorts プロパティを持つ AVContinuityDeviceに アクセスできます
ポートタイプを含む オーディオデバイスに関する情報は このプロパティから問い合わせ可能です
Continuity Microphone用の 新しいポートタイプが追加されました 入力デバイスのタイプに基づいて アプリで何か特別なことをしたい場合は このポートを識別子として 使用することをお勧めします
ただし このフローが機能するのは AVContinuityDeviceに 該当するiPhoneとiPadのみです
既存のAudio Session APIを 使って システム上で 利用可能な入力を 問い合わせることもできます
AirPodsまたはBluetoothマイク用の 既存のポートタイプは iOSから引き継がれました キャプチャデバイスの可用性の上に マイクデバイスの可用性に基づき マイクデバイスの可用性と tvOS上でそれをどのように監視する 必要があるのか説明します Apple TVには マイクが内蔵されておらず アプリが常にマイクデバイスに アクセスできる保証はありません このためAudio Sessionの InputAvailableプロパティは 使用可能なマイクデバイスの 有無を監視できるよう key value observableを サポートするようになりました
マイクの有無が ダイナミックに変化するため このプロパティにリッスンすることを 強くお勧めします これはオーディオセッションを アクティブにして I/Oを開始するタイミングを決めたり マイクデバイスが現れたり システムから消えたりしたときの アプリ状態の処理にも役立ちます
次に iOSと同様に 録音許可APIが tvOS 17で利用可能になりました ユーザーがすでにアプリに マイクへのアクセスを 許可しているかどうかをチェックし 未許可の場合は録音許可を リクエストできるようになりました
I/O開始時の失敗を避けるため アプリには記録権限を 確保することを推奨します
オーディオセッションでは playAndRecordのカテゴリーや ボイスチャットや ビデオチャットのような 入力をサポートするカテゴリやモードが tvOSでも利用できるようになりました ヘッダーのAVAudioSessionTypesを参照して どのオーディオセッションカテゴリと モードがアプリに最適か判断できます 以上がtvOS 17で新たに追加された オーディオセッションの変更点です 多様な録画APIと 推奨される使用例について お話しします
まずはAVAudioRecorderから
これは音声ファイルに録音する 最も簡単な方法であり リアルタイムでない用途で マイクに入ってきたものを 録音するだけなら AVAudioRecorderが最適です 様々なエンコーディングフォーマットや 特定のファイルフォーマット サンプルレートなどが設定できます
次はAVCaptureです Kevinが述べたように カメラとマイクの両方が使用されている場合 既存のiOS AVCapture APIを 活用してマイクにアクセスし 基本的な録音ユースケースを 行うことができます AVAudioEngineに移りましょう
AVAudioEngineは録音と再生の 両方をサポートし 単純なオーディオ処理から 複雑なオーディオ処理まで対応します 例えばカラオケアプリのように ユーザーのマイクからの音声入力を分析し このマイク入力を 再生トラックとミックスすることができます
さてアプリがリアルタイムの オーディオI/Oサイクルと 直接インタラクションしたい場合も あるでしょう AVAudioEngineは リアルタイムインターフェースも提供します
アプリはAVAudioSinkNodeと AVAudioSourceNodeを介して リアルタイムのセーフレンダー コールバックを提供することができます
またAVAudioEngineで 音声処理機能を 利用することもできます 低レベルのインターフェイスを 扱うアプリについては 対応するiOSのメカニズムも tvOSに引き継がれています
リアルタイム録音以外の用途では AudioQueueをご利用ください リアルタイムのオーディオI/Oサイクルを 直接操作するには 既存のAudioUnit APIを介して オーディオユニットAU RemoteIOと AU VoiceIOを使用できます
これらのAPIについて より詳細な情報を知りたい場合は AVFAudioと Audio Toolboxフレームワークの Developer Webサイトの 確認をお勧めします
Apple TVからの再生に エコーキャンセルを要する マイクストリームが必要な場合 例えば会議の使用例では 当社の音声処理APIを選択することを 強くお勧めします 理由をお話しします 標準的なエコーキャンセリングの問題 例えばiPhoneで 録画と再生が同じデバイスで行われる場合と 比較すると tvOSのセットアップで 新しくなった点は以下の通りです Continuity Microphoneを 有効にしたルートでは 録音はiPhoneやiPadで行われます しかし 再生はtvOSデバイス上で ストリーミングされ 任意のテレビスピーカー ホームシアターセットアップ サウンドバー あるいはステレオHomePodsのペアから 再生される可能性があります これらの多くは 5.1や7.1 LPCMなどの リッチなフォーマットを再生し ユーザーの体験を向上させるために 独自のオーディオ処理を 実行する能力があります これに伴い 一般的な Apple TVの環境では ユーザーはマイクデバイスから 数フィート離れている可能性があり このマイクデバイスは これらの大音量の再生デバイスに はるかに近い場所にある可能性があります
これらのシナリオはすべて ローカル環境からの音声を高品質で キャプチャしながら Apple TVからの再生を すべてキャンセルするという 非常に難しい エコー制御の問題を設定しました このような課題を克服するために tvOS 17には 新しい音声処理とエコーキャンセレーション 技術が搭載されました AVAudioEngineでは 現在tvOSでも利用可能な 既存のiOS APIを採用し inputNodeで setVoiceProcessingEnabledを 呼び出すだけで これを利用することができます また VoiceProcessingIO サブタイプを使用して AU VoiceIO オーディオユニットから アクセスすることもできます 音声処理APIと その機能の詳細については 私どものセッションである 「音声処理の新機能」をご確認ください これが今年のtvOS 17で新たに 追加されたオーディオAPIの全容です
さて アプリに戻って このマイク機能の一部を 活用する方法を見てみましょう
Xcodeに戻って AudioCapturerクラスを開きます
このクラスは基礎となるオーディオAPIの すべてのニュアンスを アプリの残りのコードから抽象化します
独自のAVAudioEngine インスタンスを持っており これが今回使用する録音APIです
オーディオセッションの 共有インスタンスも持っています
これがこのクラスで行うことの 簡単な見識です 高度なレベルでは 起動前にオーディオセッションの カテゴリとモードを設定し 基盤となる AVAudioEngineに 正しいフォーマットを設定します
また 入力ノードに音声処理を設定し ユーザーが制御可能なトグルで それをバイパスします
この例では 非リアルタイムの コンテキストでエンジンを動かしています これをtvOS用に変更するために 必要なことを見てみましょう このiOSアプリは マイクデバイスが常に 利用可能であることを前提に そのままtvOS用にビルドされます 必要なのは inputAvailable KVO通知を リッスンするオブザーバを追加して オーディオセッションを開始する前に 入力マイクデバイスが 利用可能だと確認してから I/Oを開始することです 先に付け加えておきます
また マイクデバイスが表示されたり システムから消えたりしたときの アプリ状態の確認も必要です これは セッション中に ユーザーが単にApple TVから 電話の接続を 切り離しただけかもしれません
これで私のApple TVでもうまくいくはず 実際に使ってみましょう!
ここで 私は今アプリの オーディオモードに入っています 再生ボタンを押して曲を再生し 自分の会話を録音することができます
グルーヴィーな曲ですね! 聞くたびに踊りたくなります
楽しかったですね! 今までの音声処理モードでは Apple TVから再生される この曲はキャンセルされ ローカル環境からの音声だけが アプリに送られることになります
グルーヴィーな曲ですね! 聞くたびに踊りたくなります
これがtvOSのエコーキャンセルです
これで一段落です! これまで振り返りをしましょう
私たちはこの機能を 高いレベルで紹介し tvOSでアンロックされる新しいジャンルの アプリについてお話ししました 続いて デバイスピッカーを表示し 連携デバイスを選択するための新しい デバイス発見APIについて説明しました tvOSで現在使用可能な カメラとマイクのAPIをレビューしました そして最後に 既存のカメラとマイクのアプリを tvOS用に改良し コードをできる限り共有し Device Discoveryを追加しました また tvOS特有の 注意点についてもまとめました tvOSアプリにカメラとマイクの サポートを導入できることを 非常に嬉しく思います このプラットフォームと機能を使って みなさんが開発する アプリが待ちきれません! ありがとうございました ♪♪
-
-
特定のトピックをお探しの場合は、上にトピックを入力すると、関連するトピックにすばやく移動できます。
クエリの送信中にエラーが発生しました。インターネット接続を確認して、もう一度お試しください。