点击停止时Media Player出现问题

时间:2013-12-12 09:47:23

标签: java android eclipse media-player

我今天一直在努力让我的按钮发声。 我想点击它时按钮播放声音,再次点击停止播放声音 第一部分工作,但后来我添加了

if(mpButtonClick1.isPlaying())
{
    mpButtonClick1.stop();
}
else
{
    mpButtonClick1.start();
}

由于我添加了那部分,当我点击按钮时没有任何反应。没有声音。 Eclipse没有向我显示任何错误。 这是我的活动

package com.example.splashzor;

import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class Prvi extends Activity{

    MediaPlayer mpButtonClick1;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.prvi);

        final MediaPlayer mpButtonClick1 = MediaPlayer.create(this, R.raw.spalshm);

        mpButtonClick1.isPlaying();

        Button dugme = (Button) findViewById(R.id.dugme);
        dugme.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                mpButtonClick1.start();
                {
                    if(mpButtonClick1.isPlaying())
                    {
                        mpButtonClick1.stop();
                    }
                    else
                    {
                        mpButtonClick1.start();
                    }

                }  
            }
        });     
     }
}  

如果你告诉我我做错了什么以及如何解决它,我将不胜感激。

1 个答案:

答案 0 :(得分:2)

mpButtonClick1.start();阻止之前移除if/else来电。

否则,无论何时单击按钮,您始终会启动该按钮,然后立即将其停止,从而导致无法播放声音。

逻辑应该是:

@Override
public void onClick(View v) {
    if (mpButtonClick1.isPlaying()) {
        mpButtonClick1.pause();
    }
    else {
        mpButtonClick1.start();
    }
}  

编辑:同时将stop()更改为pause()。致电stop()表示它进入停止状态,在您致电prepare() http://developer.android.com/reference/android/media/MediaPlayer.html

之前无法再次播放