フラグメントを保持するビューページを持っています。各フラグメントにはMediaPlayerオブジェクトがあります。つまり、各フラグメントにはオーディオが添付されています。私の要件は、私はビューページをスワイプし、現在のフラグメントメディアプレーヤーが停止し、次のフラグメントメディアプレーヤーが再生する必要があります。私がviewpagerを後方にスワイプすると、現在のフラグメントメディアプレーヤーが停止し、以前のフラグメントメディアプレーヤーが起動するはずです。それぞれのフラグメントにオーディオが添付されている必要はないので、各フラグメントが独自のメディアプレーヤーオブジェクトを持っている理由と、それを処理するためにオーディオのチェックを入れているのです。これまでのところ私は、視認性のチェックを持って、私は再び来る場合、私はオーディオストップが作動し、その後フラグメントのOnStopにメディアプレーヤーオブジェクトを解放した場合、それに応じてViewPager内のフラグメント内のMediaPlayerオブジェクトの処理方法
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
if (mPlayer != null) {
mPlayer.start();
}
} else {
if (mPlayer != null && mPlayer.isPlaying()) {
mPlayer.pause();
mPlayer.seekTo(0);
}
}
}
をオーディオを再生された各フラグメントでコード
の下に試してみました同じ断片に。
@Override
public void onStop() {
if (mPlayer != null && mPlayer.isPlaying()) {
mPlayer.stop();
mPlayer.reset(); // Might not be necessary, since release() is called right after, but it doesn't seem to hurt/cause issues
mPlayer.release();
mPlayer = null;
}
super.onStop();
}
解決方法私はviewpagerの断片の中でメディアプレーヤーを制御する方法を知らない。