AirPlay
AirPlay を使用すると、メディアコンテンツを iOS、macOS、tvOS デバイスから Apple TV、HomePod、AirPlay 対応のテレビやスピーカーにワイヤレスでストリーミングできます。
あなたのアプリがメディア再生を提供する場合は、ミラーリングだけでなく AirPlay ストリーミングをサポートして、最高のユーザー体験を実現してください。
メディアの再生と AirPlay をサポートするには、以下のフレームワークを採用します。
システムが提供するメディアプレーヤーを使用します。 組み込みのメディアプレーヤーは、ほとんどのメディアアプリのニーズに対応し、システム全体で一貫した再生体験を提供します。使いやすく、実装が簡単で、新しい機能と改善が自動的に採用されます。なじみのないインターフェイスを備えたカスタムプレーヤーは、人々を混乱させ、イライラさせます。システム提供のプレーヤーではあなたのアプリのニーズが満たされない場合にのみ、カスタムビデオプレーヤーを設計して下さい。開発者向けガイダンスについては、AVPlayerViewController (AVPlayerViewController) を参照してください。
可能な限り最高の解像度でコンテンツを提供して下さい。 あなたの HLS (HTTP Live Streaming) (HTTP ライブ ストリーミング) プレイリストには、人々が使用しているデバイスに適した解像度でコンテンツを体験できるように、利用可能なすべての範囲の解像度を含める必要があります (AVFoundation はデバイスに基づいて解像度を自動的に選択します)。 解像度の範囲を含めないと、より高い解像度で再生できるデバイスにコンテンツをストリーミングしたときに、コンテンツの品質が低下して見えます。たとえば、iPhone で 720p で見栄えのするコンテンツは、人々が AirPlay を使用して 4K テレビにストリーミングすると、低品質に見えます。
AirPlay に入る
AirPlay に入る直感的な方法を提供します。 カスタムプレーヤー UI 内に、AirPlay に入るコントロールを明確に表示します。
AirPlay を開始するコントロールに Apple が提供するアイコンを使用します。 システム提供のメディアプレーヤーを使用すると、正しい AirPlay アイコンが自動的に表示されます。必要に応じて、あなたのアプリの外観に合わせてアイコンのサイズと tint (色合い) を調整できます。開発者向けガイダンスについては、AVRoutePickerView (AVRoutePickerView) と MPVolumeView (MPVolumeView) を参照してください。
AirPlay ビデオ
AirPlay オーディオ
AirPlay アイコンを正しい位置に配置します。 カスタムプレーヤーでは、システムが提供するメディアプレーヤーで使用されるアイコンの位置を一致させます。具体的には、デバイスがポートレイト向きの場合は左下隅に、デバイスがランドスケープ向きの場合は右下隅に AirPlay アイコンを表示します。
サブメニューで AirPlay アイコンを隠したり、表示するためにコントロールを使用するよう人々に要求しないでください。 あなたのアプリに AirPlay を開始するためのコントロールが含まれている場合、システムが提供するアイコンがコントロールに表示されるはずです。また、AirPlay アイコンがプレーヤー UI 内に表示されていることを確認してください。
AirPlay に入るカスタムコントロールが直感的で、人々の期待どおりに動作することを確認します。 システム提供のボタンの外観と動作に一致するように努めてください。これには、再生が開始されたとき、実行中、または使用できないことを示す明確な視覚的状態が含まれます。
再生中
リモートコントロールイベントをサポートして下さい。 リモートコントロールイベントをサポートすると、ロックスクリーンで再生、一時停止、早送りなどのアクションを選択したり、Siri や HomePod で操作したりできます。開発者向けガイダンスについては、リモートコマンドセンターイベント (Remote Command Center Events) を参照してください。
あなたのアプリがバックグラウンドに移行したとき、またはデバイスがロックされたときにも再生を停止しないでください。 たとえば、人々は、あなたのアプリからストリーミングを開始したテレビ番組が、メールをチェックしたり、デバイスをスリープ状態にしている間も続くことを期待しています。このタイプのシナリオでは、ミラーリングを避けることも重要です。人々は、明示的に選択しない限り、他のタイプのコンテンツをストリーミングしたくないからです。
あなたのアプリが没入型メディアの再生を開始していない限り、別のアプリの再生を中断しないでください。 人々はすべての新しいコンテンツを再生することを選択できますが、あなたのアプリはデフォルトで現在の再生を中断しないようにする必要があります。たとえば、あなたのアプリがインラインビデオの起動時または自動再生時にビデオを再生する場合、現在の再生を継続しながら、ローカルデバイスでのみこのコンテンツを再生する必要があります。開発者向けガイダンスについては、AVAudioSessionCategoryAmbient (AVAudioSessionCategoryAmbient) を参照してください。
メディアの再生を制御するためのインターフェイスを提供します。 あなたのアプリでは、一時停止、再生、スキップ、スクラブ、終了など、再生中に一般的なタスクを実行するためのコントロールを人々に提供する必要があります。デフォルトでは、システム提供のメディアプレーヤーは、標準のコントロールを含むスクリーンを表示し、別のデバイスで再生が行われていることを示します。
再生中に人々があなたのアプリの他の部分を使用できるようにします。 AirPlay がアクティブな場合でも、あなたのアプリは引き続き機能すべきです。ユーザーが再生スクリーンから移動した場合は、他のアプリ内ビデオの再生が開始されず、ストリーミングコンテンツが中断されないようにしてください。
期待されるコンテンツのみをストリーミングします。 アプリ自体のコンテキスト内でのみ意味のあるバックグラウンドループや短いビデオ体験などのコンテンツのストリーミングを無効にします。開発者向けガイダンスについては、usesExternalPlaybackWhileExternalScreenIsActive (usesExternalPlaybackWhileExternalScreenIsActive) を参照してください。
リソース
関連
Apple の商標リスト (Apple Trademark List)
開発者用文書
AVFoundation (AVFoundation)
AVKit (AVKit)