セッション(実際のプレーヤー用)に分割する方法を説明します。種類のメディアアプリのアーキテクチャを紹介します。コントロールに応答したり、音声出力ストリームを使用する他のアプリと連携したりする方法も示します。独自のプレーヤーを最初から構築することも、次のオプションから選択することもできます。動画形式とデータソースをサポートするシンプルなプレーヤー向けの基本機能を利用できます。ストリーミングなどの高性能な機能をサポートしています。コードをカスタマイズすることで、新しいコンポーネントの追加を容易に行えます。以降でのみ使用できます。つのクラスが定義されています。アプリを作成するための明確な構造が規定されます。)に対応する定義済みのコールバックと、アプリ固有の特別な動作を定義する拡張可能なカスタム呼び出しが使用されます。セッションにより処理されます。セッションのみから呼び出されます。セッションには、プレーヤーの状態(再生、一時停止)と、再生中のコンテンツに関する情報が保持されます。コントローラからのコールバックを受信できます。デバイスからも、プレーヤーの制御が可能になります。コールバックに応答するロジックには一貫性が必要です。コールバックであっても、それに対する応答は同じにする必要があります。コントローラとのみやりとりし、プレーヤー自体とはやりとりしません。セッションへのコールバックに変換されます。セッションからコールバックを受信します。自動的に更新する仕組みを実現できます。セッションを使用すると、ランタイムにさまざまなインターフェースやプレーヤーをデプロイできます。アプリを実行するデバイスの機能に応じて、アプリの外観やパフォーマンスを個別に変更できます。動画の再生中は、目と耳の両方を使います。音声の再生中は、耳は使いながらも、同時に別のアプリで作業を行えます。このような使い方の違いにより、設計も異なってきます。動画アプリ動画アプリには、コンテンツを表示するためのウィンドウが必要です。アクティビティとして実装します。そのアクティビティの一部に動画の画面を表示します。表示しておく必要はありません。タスクとして実行できます。ユーザーは別のアプリに切り替えて、作業しながら聴き続けることができます。ユーザーが別のアプリに切り替えても、サービスならバックグラウンドでの実行が可能です。つのパートを別々のコンポーネントに分けることで、それぞれをより効率的に実行できます。なしで長時間実行可能なプレーヤーに比べて短いのが一般的です。つのクラスが用意されています。サブクラスとして実装されます。)からアプリの検出、アプリへの接続、コンテンツのブラウジング、再生のコントロールを簡単に行うことができます。提供するアプリでは、複数の同時接続を処理できるようにします。インフラストラクチャ適切に設計されたメディアアプリでは、音声を再生する他のアプリと「うまく連携」できるようになっています。デバイス上の他の音声アプリとスマートフォンを共有できるような作りになっています。コントロールにも応答できるように作られています。このような動作の詳細については、音声出力の制御をご覧ください。ライブラリには、音声や動画を再生するアプリの作成に役立つクラスが含まれています。9)以降を搭載するデバイスに対応しています。