我是编程的绝对新手,最近敢于开始使用Android编程。添加了4个图像按钮,每个按钮播放一个独特的曲调并显示一个独特的消息;但问题是,如果我在点击一个按钮后按下另一个按钮,之前的音乐会继续播放而当前的音乐仍然打开,简而言之,音乐继续运行。如果我一个接一个地弹奏四个按钮,则会完全播放四种不同的音乐。无法找到出路。如果可能的话,请以精心的方式提供帮助。另一个问题,我创建的编码太复杂了吗?
package com.example.imagesonic;
import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try{
ImageButton ib1 = (ImageButton) findViewById(R.id.imageButton1);
final MediaPlayer mp1 = MediaPlayer.create(this, R.raw.muzikone);
ib1.setOnClickListener (new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "FIRST MUSIC!", Toast.LENGTH_LONG).show();
mp1.start();
}
});
ImageButton ib2 = (ImageButton) findViewById(R.id.imageButton2);
final MediaPlayer mp2 = MediaPlayer.create(this, R.raw.muziktwo);
ib2.setOnClickListener (new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "SECOND MUSIC!", Toast.LENGTH_LONG).show();
mp2.start();
}
});
ImageButton ib3 = (ImageButton) findViewById(R.id.imageButton3);
final MediaPlayer mp3 = MediaPlayer.create(this, R.raw.muzikthree);
ib3.setOnClickListener (new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "THIRD MUSIC!", Toast.LENGTH_LONG).show();
mp3.start();
}
});
ImageButton ib4 = (ImageButton) findViewById(R.id.imageButton4);
final MediaPlayer mp4 = MediaPlayer.create(this, R.raw.muzikfour);
ib4.setOnClickListener (new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "FOURTH MUSIC!", Toast.LENGTH_LONG).show();
ImageButton ib4 = (ImageButton) findViewById(R.id.imageButton1);
ib4.setImageResource(R.drawable.naomitan);
mp4.start();
}
});
}catch(Exception e) {
}
}
}
答案 0 :(得分:0)
要使您的应用程序以这样的方式工作:一旦播放一首歌曲,所有其他歌曲将停止播放,您必须使用服务并实施Android Audio manager回调,然后您可以控制您的MediaPlayer实例如果另一个AudioManger实例正在播放音乐,则停止播放音乐。
Here是Google提供的一些很好的文档,说明了实现此目的的说明。这很简单。