我今天一直在努力让我的按钮发声。 我想点击它时按钮播放声音,再次点击停止播放声音 第一部分工作,但后来我添加了
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();
}
}
}
});
}
}
如果你告诉我我做错了什么以及如何解决它,我将不胜感激。
答案 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