Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我怎样才能实施「;暂停“;在我的MediaPalyer中的功能?_Java_Android_Android Fragments - Fatal编程技术网

Java 我怎样才能实施「;暂停“;在我的MediaPalyer中的功能?

Java 我怎样才能实施「;暂停“;在我的MediaPalyer中的功能?,java,android,android-fragments,Java,Android,Android Fragments,“停止”和“播放”工作正常,但“暂停”的工作方式类似于“停止”。当我按pause时,音频文件停止播放,当我按play时,音频文件从头开始播放 import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widge

“停止”和“播放”工作正常,但“暂停”的工作方式类似于“停止”。当我按pause时,音频文件停止播放,当我按play时,音频文件从头开始播放

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;

public class HelloMoonFragment extends Fragment 
{
    private AudioPlayer mPlayer = new AudioPlayer();
    private Button mPlayButton;
    private Button mStopButton;
    private Button mPauseButton;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup parent,
    Bundle savedInstanceState) 
    {
        View v = inflater.inflate(R.layout.fragment_hello_moon, parent, false);
        mPlayButton = (Button)v.findViewById(R.id.hellomoon_playButton);
        mPlayButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) 
            {
                mPlayer.play(getActivity());
            }
            });
        mPauseButton = (Button) v.findViewById(R.id.hellomoon_pauseButton);
        mPauseButton.setOnClickListener(new View.OnClickListener() 
        {
            public void onClick(View v) 
            {
                 mPlayer.pause();
            }
            });
        mStopButton = (Button)v.findViewById(R.id.hellomoon_stopButton);
        mStopButton.setOnClickListener(new View.OnClickListener() 
        {
            public void onClick(View v) 
            {
                mPlayer.stop();
            }
            });
        return v;
    }
    @Override
    public void onDestroy() 
    {
        super.onDestroy();
        mPlayer.stop();
    }

}

package com.example.hellomoon;

import android.content.Context;
import android.media.MediaPlayer;

public class AudioPlayer {

    private MediaPlayer mPlayer;
    public void stop()
    {
        if(mPlayer != null)
        {
            mPlayer.release();
            mPlayer = null;
        }

    }
    public void pause()
    {   

        if(mPlayer.isPlaying()) 
            {
                mPlayer.pause();

            }
    }
    public void play(Context c)
    {


        stop();
        mPlayer = MediaPlayer.create(c, R.raw.one_small_step);

        mPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() 
        {

            @Override
            public void onCompletion(MediaPlayer mp) 
            {
                stop();
            }

        });
        mPlayer.start();
    }
}
“停止”和“播放”工作正常,但“暂停”的工作方式类似于“停止”。当我按pause时,音频文件停止播放,当我按play时,音频文件从头开始播放

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;

public class HelloMoonFragment extends Fragment 
{
    private AudioPlayer mPlayer = new AudioPlayer();
    private Button mPlayButton;
    private Button mStopButton;
    private Button mPauseButton;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup parent,
    Bundle savedInstanceState) 
    {
        View v = inflater.inflate(R.layout.fragment_hello_moon, parent, false);
        mPlayButton = (Button)v.findViewById(R.id.hellomoon_playButton);
        mPlayButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) 
            {
                mPlayer.play(getActivity());
            }
            });
        mPauseButton = (Button) v.findViewById(R.id.hellomoon_pauseButton);
        mPauseButton.setOnClickListener(new View.OnClickListener() 
        {
            public void onClick(View v) 
            {
                 mPlayer.pause();
            }
            });
        mStopButton = (Button)v.findViewById(R.id.hellomoon_stopButton);
        mStopButton.setOnClickListener(new View.OnClickListener() 
        {
            public void onClick(View v) 
            {
                mPlayer.stop();
            }
            });
        return v;
    }
    @Override
    public void onDestroy() 
    {
        super.onDestroy();
        mPlayer.stop();
    }

}

package com.example.hellomoon;

import android.content.Context;
import android.media.MediaPlayer;

public class AudioPlayer {

    private MediaPlayer mPlayer;
    public void stop()
    {
        if(mPlayer != null)
        {
            mPlayer.release();
            mPlayer = null;
        }

    }
    public void pause()
    {   

        if(mPlayer.isPlaying()) 
            {
                mPlayer.pause();

            }
    }
    public void play(Context c)
    {


        stop();
        mPlayer = MediaPlayer.create(c, R.raw.one_small_step);

        mPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() 
        {

            @Override
            public void onCompletion(MediaPlayer mp) 
            {
                stop();
            }

        });
        mPlayer.start();
    }
}

它从头开始,因为这里:

public void play(Context c) {
   stop();
   mPlayer = MediaPlayer.create(c, R.raw.one_small_step);
您正在释放旧版本并重新创建它

尝试记住播放器暂停时的提示:

public class AudioPlayer {
   boolean isPaused = false;

   public void pause() {   
     if(mPlayer.isPlaying())  {
           mPlayer.pause();
           isPaused = true;
     }
   }

  public void play(Context c) {
   if (isPaused && mPlayer != null) {
       mPlayer.start();
       isPaused = false
       return;
   }
   stop();
   mPlayer = MediaPlayer.create(c, R.raw.one_small_step);