4

複数のアクティビティを持つアプリを開発しています。ユーザーは任意のアクティビティに移動できます。最初のメイン アクティビティから BGM を開始し、アプリケーション全体で再生し続けます。ここで、ユーザーが HOME キーを押すたびにメディア プレーヤーが再生を一時停止し、ユーザーがアプリに戻ったときに再び再生を開始するようにしたいと考えています。最初にメディア プレーヤーを静的にし、onPause() で音楽を一時停止し、onResume() で再生していましたが、アクティビティを切り替えるときにジャークが発生します。あなたが私の主張を理解してくれることを願っています。HOMEキーが押されたときに再生を一時停止し、ユーザーが戻ってきたときに再生を再開する方法はありますか?

4

2 に答える 2

2

Activity.onUserLeaveHint() http://developer.android.com/reference/android/app/Activity.html#onUserLeaveHint ()を見てください。

ユーザーの選択の結果、アクティビティがバックグラウンドに移行しようとしているときに、アクティビティ ライフサイクルの一部として呼び出されます。たとえば、ユーザーがホーム キーを押すと onUserLeaveHint() が呼び出されますが、電話の着信によって通話中のアクティビティが自動的に前面に表示されると、中断されたアクティビティで onUserLeaveHint() は呼び出されません。 . 呼び出される場合、このメソッドはアクティビティの onPause() コールバックの直前に呼び出されます。

于 2013-01-03T08:27:42.617 に答える
0

私は同じ問題を抱えていて、醜い方法で解決しました.グローバルな静的プレーヤーがあります. アクティビティの onPause では、プレーヤーを停止するように呼び出します (ただし、実際には停止しません)。onResume では、開始するように呼び出します。プレーヤー onStart で、音楽を再生中としてマークします。onStop では、音楽を停止済みとしてマークしますが、実際には停止しません。stop が呼び出されてから 1 秒後に目を覚まし、最後の 1 秒間に "startPlaying" がなかった場合は音楽を停止します。

もっと良い方法があることを願っています。

于 2013-01-03T09:19:41.803 に答える