如何在Android中播放,停止和暂停在媒体播放器实例上工作



我想开发媒体播放器类型的应用程序,该应用程序具有两个按钮一个供播放和暂停,一个用于停止。我在布局文件中使用两个图像按钮,并在此处放置的Java文件和代码中引用它,但是当我单击"停止按钮"音频被停止时,但随后我想重播音频文件。但是我不能玩游戏按钮。

我的Java代码下面

public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.activity_aarti_fragment, container, false);
        btnplay=(ImageButton)v.findViewById(R.id.btnplay);
        btnstop=(ImageButton)v.findViewById(R.id.btnstop);
        seekbar=(SeekBar)v.findViewById(R.id.seekbar);
        mp = MediaPlayer.create(getActivity(), R.raw.arti);
        btnstop.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                mp.stop();
                btnplay.setImageResource(R.drawable.ic_action_play);
                Toast.makeText(getActivity(), "Stop",Toast.LENGTH_LONG).show();
            }
        });
        btnplay.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                if(mp.isPlaying())
                {
                    mp.pause();
                    btnplay.setImageResource(R.drawable.ic_action_play);
                    Toast.makeText(getActivity(), "Pause",Toast.LENGTH_SHORT).show();
                }
                else
                {   btnplay.setImageResource(R.drawable.ic_action_pause);
                    mp.start();
                    Toast.makeText(getActivity(), "Play",Toast.LENGTH_SHORT).show();
                }
            }
        });
        return v;
    }

使用以下:

private BackgroundSound mBackgroundSound;
private MediaPlayer player;
public class BackgroundSound extends AsyncTask<Void, Void, Void> {
    @Override
    protected Void doInBackground(Void... params) {
        player = MediaPlayer.create(HomePage.this, R.raw.background);
        AudioManager audioManager = (AudioManager)  getSystemService(AUDIO_SERVICE);
        float actualVolume = (float) audioManager
                .getStreamVolume(AudioManager.STREAM_MUSIC);
        float maxVolume = (float) audioManager
                .getStreamMaxVolume(AudioManager.STREAM_MUSIC);
        float volume = actualVolume / maxVolume;
        player.setLooping(true); // Set looping
        player.setVolume(volume, volume);
        player.start();
        return null;
    }
}

播放:

        mBackgroundSound = new BackgroundSound();
        mBackgroundSound.execute();

停止:

        mBackgroundSound.cancel(true);
        if (player != null) {
             player.stop();
             player.release();
        }

暂停:

        if (player != null) {
             player.pause();
        }

停止媒体播放器后,您需要再次致电准备它以使其进入可以调用start()的状态。在此处查看状态图http://developer.android.com/reference/android/media/mediaplayer.html#pause()

尝试一下,它将为您提供帮助....

//Click Listener on Image Button with play and Pause method
 PLAY.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
           Play-Pause();
        }
    });
//Play Pause method...........
 public void Play-Pause(){
    if (mediaPlayer.isPlaying()) {
        PLAY.setImageResource(R.drawable.pause);            
        mediaPlayer.pause();
    } else {
        PLAY.setImageResource(R.drawable.play);
        mediaPlayer.start();
    }
}

检查此代码,它的更好,简单的解决方案!

public class MainActivity extends AppCompatActivity {
    MediaPlayer mp;
    Switch sw;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mp = MediaPlayer.create(this,R.raw.nokia);
        sw = findViewById(R.id.sw);
        sw.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                mp.setLooping(true);
            }
        });
    }
    public void play(View v){
        mp.start();
    }
    public void pause(View v){
        if(mp.isPlaying())
            mp.pause();
    }
    public void stop(View v){
        if(mp.isPlaying()) {
            boolean loop=mp.isLooping();
            mp.stop();
            mp = MediaPlayer.create(this, R.raw.nokia);
            mp.setLooping(loop);
        }
    }
}

最新更新