オーディオとビデオの両方の曲を再生する音楽プレーヤーアプリケーションを開発しました。再生、一時停止、曲の進行状況を示す進行状況バーなどの機能があり、その MusicPlayerActivity から戻ると、音楽はバックグラウンドで実行されています。曲を一時停止する別のアクティビティからのこの MusicPlayerActivity 、切り替えに Intent を使用しましたが、曲はバックグラウンドで再生されていますが、プログレスバーの値、つまり曲の再生量を取得していません。誰か助けてください、保存方法曲の長さと UI の状態。ヘルプ、チュートリアル、またはリンクを提供してください。前もって感謝します。
2 に答える
これらのチュートリアルをいくつか試してみてください。すべてのチュートリアルでプログレス バーが使用されています。
http://www.androidhive.info/2012/03/android-building-audio-player-tutorial/ https://github.com/commonsguy/vidtry/blob/master/src/com/commonsware/android/vidtry/ Player.java Android ProgressBar を確定モードで使用するにはどうすればよいですか?
私のアプリケーションでは、バックグラウンド サービスとして音楽プレーヤーを実装しています。そのサービスでは、現在の位置に関する情報を提供するブロードキャスト メッセージを 500 ミリ秒ごとに送信します。プレーヤーが一時停止すると、メッセージの送信を停止します。そして、すべてのアクティビティで、このメッセージを聞くために登録するので、表示されているプレーヤーを更新できます。メッセージの送信には、バックグラウンド スレッドで実行されるハンドラーを使用します。
private Runnable mUpdateProgressRunnable = new Runnable() {
@Override
public void run() {
if (mMediaPlayer != null && !mSeeking) {
int duration = mMediaPlayer.getDuration();
int currentPosition = mMediaPlayer.getCurrentPosition();
Bundle params = new Bundle();
params.putInt(Broadcaster.P_PLAYER_DURATION, duration);
params.putInt(Broadcaster.P_PLAYER_POSITION, currentPosition);
getRferl().getBroadcaster().send(Broadcaster.E_PLAYER_CURRENT_POSITION, params);
mUpdateProgressHandler.postDelayed(this, 500);
}
}
};
Rferl は私のアプリケーションで、Broadcaster は LocalBroadcastManager の単なるラッパーです