如何在Android中停止播放音乐并再次播放?

时间:2015-03-09 18:12:59

标签: android android-mediaplayer

我正在尝试编写一个简单的Android MediaPlayer代码。我在停止播放歌曲并重新启动时遇到问题。在每个按钮单击。否则,如果我不停止曲目,则在每个按钮中单击该歌曲不播放,等待歌曲停止。

我的要求是,在每个按钮中点击歌曲应该从头开始。

mycode的:

package com.example.musicexample;

import android.media.MediaPlayer;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.Button;

public class MainActivity extends ActionBarActivity {

   Button btnPlay;
   MediaPlayer mPlayer;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

     btnPlay = (Button) findViewById(R.id.btnPlay);

     mPlayer = MediaPlayer.create(getApplicationContext(), R.raw.a);

     btnPlay.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {

            if(mPlayer.isPlaying()){
                mPlayer.stop();
                mPlayer.reset();
            }

            mPlayer.start();
        }
    });
} }

在上面的代码中,歌曲播放一次,它不会再播放。

所以请仔细阅读,请让我知道,如果正在播放歌曲,我怎么能停止曲目,然后从头开始重启。

3 个答案:

答案 0 :(得分:1)

你可以试试这个:

MediaPlayer m1 = null;

        play1.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
        stopPlaying();
        m1=MediaPlayer.create(MainActivity.this, R.raw.a);
        m1.start();
        }
    });   

    private void stopPlaying() {
         if (mp1 != null) {
            m1.stop();
            m1.release();
            m1 = null;
    }

答案 1 :(得分:0)

  

一旦处于Stopped状态,在调用prepare()或prepareAsync()将MediaPlayer对象再次设置为Prepared状态之前,无法开始播放。

http://developer.android.com/reference/android/media/MediaPlayer.html

答案 2 :(得分:0)

您正在调用reset()方法,该方法将MediaPlayer返回到其未初始化状态。

  

将MediaPlayer重置为未初始化状态。

您必须再次设置MediaPlayer的来源才能播放。