如何在访问另一个片段时停止媒体播放器?

时间:2013-10-20 16:54:17

标签: android android-fragments android-mediaplayer

这是片段类

    @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有想法,但不知道该怎么做。

1 个答案:

答案 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");


            }
        }
    }