このプロジェクトは、ローカルの音楽ファイルを再生する Android 音楽プレイヤーアプリ です。
曲リストの表示、再生・一時停止・スキップ機能を実装し、最終的には アニメーション付きアートワーク表示 を組み込む予定です。
- ローカルの音楽を
MediaStoreから取得 MediaPlayerを使用して音楽を再生- RecyclerView / ListView に曲を表示
- 再生・一時停止・スキップ機能
- アニメーション付きアートワークの表示
- UI のカスタマイズ
- YouTube のショート動画を活用する実験的機能(予定)
MediaPlayerを使用してローカルの音楽を再生MediaStoreを活用して音楽の情報(タイトル・アーティスト・URI)を取得RecyclerViewに曲をリスト表示し、タップで再生できるようにする
- 一時停止・スキップ機能(次の曲 / 前の曲)
- シークバーを追加して曲の進行状況を表示 & 変更可能にする
- 音楽再生画面にアートワークを表示
- アニメーション(フェード、ズーム、回転など)を適用
- 動的なビジュアライザーの導入
- 曲のタイトル・アーティスト名・アルバム名を YouTube で検索
- ヒットした動画をショート動画として再生画面でモーション化
- YouTube Data API のクォータ制限を回避しながら最適化
MediaPlayerを使って 1曲を再生 & 停止MediaStoreから ローカル音楽ファイルの URI を取得setDataSource()にcontent://形式の URI をセット
MediaStoreから 曲のタイトル・アーティスト・URI を取得RecyclerViewにリストを表示し、クリックで再生できるようにする
activity_main.xmlにボタンを追加し、画面上に明確に表示LinearLayoutを活用し、ボタンを最下部に固定RecyclerViewのlayout_weightを調整して 画面からボタンが消えないようにする
- ボタンを押すと、再生・停止を切り替える
- 曲をタップ →
Uriを保存 → ボタンで再生 - ボタンのテキストを「再生/停止」に変更
release() を忘れるとクラッシュが発生するため、再生前に適切に解放する。
MediaStore.Audio.Media._ID を projection に含め、正しい URI を取得する。
RecyclerView に反映するため、データを変更したら必ず呼び出す。
findViewById() を実行する前に setContentView() を設定しないと、NullPointerException が発生する。
- 「次の曲」「前の曲」ボタンを追加
- ボタンを押したら
MediaPlayerで曲をスキップ - リストの範囲を超えたら最初 or 最後の曲に戻る
- 再生中の時間をリアルタイムで更新
- シークバーを動かして好きな位置から再生
- 音楽再生画面にアートワークを表示
- アニメーション(フェード、ズーム、回転など)を適用
- 動的なビジュアライザーの導入
このアプリでは、ローカルの音楽を再生する基本機能を作成し、UI やアニメーションを充実させることを目指します。
最終的には YouTube ショート動画との連携も検討しながら、動的な音楽プレイヤーを実現 することをゴールとしています 🚀🎵