オーディオ アプリの概要
オーディオ アプリに推奨されるアーキテクチャは、クライアント / サーバー型設計です。この設計では、プレーヤーとそのメディア セッションは MediaBrowserService
内に実装され、UI とメディア コントローラは MediaBrowser
とともに Android アクティビティ内に置かれます。
MediaBrowserService
の主な機能は次の 2 つです。
MediaBrowserService
を使用すると、MediaBrowser
を備えた他のコンポーネントやアプリから、サービスの検出、固有のメディア コントローラの作成、メディア セッションへの接続、プレーヤーの制御が可能になります。Wear OS や Android Auto のアプリからメディアアプリへのアクセスには、この方法が使われます。
必要に応じて「ブラウジング API」 も利用できます。この機能のアプリでの使用は必須ではありません。ブラウジング API を使用すると、クライアントからサービスにクエリを行い、コンテンツ階層(再生リスト、メディア ライブラリ、その他のコレクションを含む)の構造を表示できます。
注: メディア セッションやメディア コントローラの場合と同様、メディア ブラウザ サービスとメディア ブラウザの推奨される実装は、media-compat サポート ライブラリ で定義されている MediaBrowserServiceCompat
クラスと MediaBrowserCompat
クラスです。これらは、API 21 で導入された旧バージョンの MediaBrowserService
クラスと MediaBrowser
クラスに置き換わるものです。ここでは簡単化のため、「MediaBrowserService」、「MediaBrowser」という用語は、それぞれ MediaBrowserServiceCompat
、MediaBrowserCompat
のインスタンスを指すものとします。
メディア ブラウザ サービスの作成
メディア ブラウザ サービスの作成方法を説明します。このサービスは、メディア セッションを含み、クライアント接続を管理し、音声再生中はフォアグラウンド サービスになるものです。
メディア ブラウザ クライアントの作成
メディア ブラウザ クライアント アクティビティの作成方法を説明します。これは、UI とメディア コントローラを含み、メディア ブラウザ サービスとの接続と通信を行うものです。
メディア セッション コールバック
メディア セッション コールバック メソッドで、メディア セッション、メディア ブラウザ サービス、その他のアプリ コンポーネント(通知やブロードキャスト レシーバなど)を管理する方法を説明します。
android-MediaBrowserService
この GitHub サンプルには、音声をバックグラウンドで再生でき、他のアプリに公開するメディア ライブラリを提供するメディアアプリの実装方法が示されています。
Content and code samples on this page are subject to the licenses described in the Content License . Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2019-12-27 UTC.
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"必要な情報がない"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"複雑すぎる / 手順が多すぎる"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"最新ではない"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻訳に関する問題"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"サンプル / コードに問題がある"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"その他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"わかりやすい"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"問題の解決に役立った"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"その他"
}]