Android 如何在单击按钮时添加soundeffects
我有点麻烦,这是我的想法,我已经创建了一个应用程序,一个简单的类似游戏的应用程序。。但是问题是,当我尝试单击标题屏幕中的按钮时,它不会播放单击声音。。谁能帮帮我吗。。这是我的声音代码Android 如何在单击按钮时添加soundeffects,android,Android,我有点麻烦,这是我的想法,我已经创建了一个应用程序,一个简单的类似游戏的应用程序。。但是问题是,当我尝试单击标题屏幕中的按钮时,它不会播放单击声音。。谁能帮帮我吗。。这是我的声音代码 public class Effects extends Activity implements MediaPlayer.OnCompletionListener { Button mPlay; MediaPlayer mPlayer; @Override
public class Effects extends Activity implements MediaPlayer.OnCompletionListener {
Button mPlay;
MediaPlayer mPlayer;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mPlay = (Button)findViewById(R.id.btnStart);
mPlay.setOnClickListener(playListener);
setContentView(R.layout.activity_main);
}
@Override
public void onDestroy() {
super.onDestroy();
if(mPlayer != null) {
mPlayer.release();
}
}
private View.OnClickListener playListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
if(mPlayer == null) {
try {
mPlayer = MediaPlayer.create(Effects.this, R.raw.button11);
mPlayer.start();
} catch (Exception e) {
e.printStackTrace();
}
} else {
mPlayer.stop();
mPlayer.release();
mPlayer = null;
}
}
};
@Override
public void onCompletion(MediaPlayer arg0) {
// TODO Auto-generated method stub
}
}
这是我的主java代码,我希望在单击此按钮时播放声音
public class Main extends Activity implements OnClickListener
{
Button about;
Button Quit;
Button start;
protected void onCreate(Bundle onSavedInstanceState) {
super.onCreate(onSavedInstanceState);
setContentView(R.layout.activity_main);
about = (Button)findViewById(R.id.btnAbout);
about.setOnClickListener(this);
Quit = (Button)findViewById(R.id.btnQuit);
Quit.setOnClickListener(this);
start = (Button)findViewById(R.id.btnStart);
start.setOnClickListener(this);
}
public void onClick(View argo)
{
if(argo.getId()==R.id.btnAbout)
{
Intent i = new Intent(this,About.class);
this.startActivity(i);
}
if(argo.getId()==R.id.btnQuit)
{
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
if(argo.getId()==R.id.btnStart)
{
Intent start = new Intent(this,Howto.class);
this.startActivity(start);
Intent svc=new Intent(this,Effects.class);
startService(svc);
}
}
}
使用
SoundPool
播放声音:您应该在onCreate()
中初始化声音,然后在onClick()
如果(argo.getId()==R.id.btnQuit)(你至少应该使用else
)熟悉switch/case
语法,而不是做成千上万的毫无意义的if(argo.getId()==R.id.btnQuit)