すべてのアクティビティで一般的な音楽プレーヤーを表示します
質問
私はバンドのアプリに取り組んでいます。バンドは、アジェンダ、ニュースセクション、アルバムセクションeteteraなどのいくつかの異なるアクティビティで構成されています。バンド用なので、バックグラウンドでバンドの曲を演奏したいと思います。
これはそれほど問題ではありませんが、すべてのアクティビティの一番下に小さな音楽プレーヤーを見せたいので、ユーザーが必要に応じて常に停止、スキップ、またはリプレイできます。この例は、たとえばMobile Roadieのアプリに記載されています。
しかし、私はこれを行う方法がわかりません。私の最善の推測は、独自のレイアウトを備えた音楽プレーヤーのクラスを作成し、各アクティビティ/レイアウトの下部にこれを含めることです。しかし、すべてのアクティビティが独自のスレッドで始まるので、私はこれが各アクティビティに対してプレーヤーをリセットすると推測しています。
それでは、音楽プレーヤーの状態が維持されるすべてのアクティビティに共通の音楽プレーヤーを追加するにはどうすればよいですか?
たとえば、Mobile Roadieの音楽ベースのアプリをダウンロードすると、私が何を意味するかがわかります。
私はフラグメントを使用することにしましたが、すでに既存のアクティビティでそれらを使用できるかどうかはわかりません。私が見つけたすべての例は、完全に新しいプロジェクトに焦点を当てており、まだ存在していないプロジェクトではありません。要するに、断片を作成して、すでに既存のアクティビティでそれらを使用できますか? (既存のアジェンダアクティビティの上に音楽プレーヤーを表示するなど)
解決
次のようにすることをお勧めします。音楽演奏状態はすべてのアクティビティで保持される必要があるため、これを達成するためにサービスを使用する必要があります。また、アクティビティとは別に存在する必要があるコントロールパネルが必要です。それを行うのに最適な方法は、使用することです フラグメント. 。サービスに接続し、それを制御するためにUIを提供するフラグメントを作成し、必要なすべてのアクティビティにこのフラグメントを追加します。