動画アプリはメディア セッションとメディア コントローラを同じアクティビティで実行するため、メディア セッションのコールバックは、オーディオ アプリのサーバー/クライアント アーキテクチャで示した実装とは異なります。サービスの呼び出しはなく、通知は NotificationManager を介して処理されます。次の表は、さまざまな機能をどのように各コールバック メソッドで制御するかをまとめたものです。
onPlay() | onPause() | onStop() | |
音声フォーカス | requestFocus() が OnAudioFocusChangeListener を渡します。常に最初に requestFocus() を呼び出し、フォーカスが付与されている場合にのみ続行します。
|
abandonAudioFocus()
|
|
メディア セッション | setActive(true)
- メタデータと状態の更新 |
- メタデータと状態の更新 | setActive(false)
- メタデータと状態の更新 |
プレーヤーの実装 | プレーヤーを起動する | プレーヤーを一時停止する | プレーヤーを停止する |
騒音になる | BroadcastReceiver を登録する
|
BroadcastReceiver の登録を解除する
|
|
通知 | 通知を表示 | 更新通知 |