这是片段类
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View layoutView = inflater.inflate(R.layout.fragment_lyrics,
container, false);
int hymnNo = fragVal - 1;
//Database
final MediaPlayer p = MediaPlayer.create(getActivity(), R.raw.s);
final ToggleButton playPauseButton =
(ToggleButton)layoutView.findViewById(R.id.playpause);
playPauseButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if (playPauseButton.isChecked() ){
p.start();
}else{
p.pause();
}
}});
我有一些事情。一旦我去另一个片段,我的媒体播放器可以停止吗?并完全重置它(当前片段),这意味着我的切换按钮也将处于默认位置? 我试过了
public void onDetach()
{
getActivity().finish();}
它不起作用..我的想法是销毁所有不可见的碎片。 我也尝试使用可见性的那个,但我不知道如何在片段生命周期中调用媒体播放器(即p.release()或p.stop(),如onDestroy或onDetach..please帮助我guyz..i有想法,但不知道该怎么做。
答案 0 :(得分:-1)
试试这个。
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
Log.d(TAG, "Visible");
//your code
} else {
Log.d(TAG, "Not Visible");
if (mPlayer != null){
mPlayer.release();
Log.d(TAG, "Player released");
}
}
}