我到目前为止的代码是:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void SoundPlayer(View view) {
MediaPlayer soundMediaPlayer1 = MediaPlayer.create(this, R.raw.gun_sound);
soundMediaPlayer1.start();
}
public void DogSound(View view) {
MediaPlayer soundMediaPlayer2 = MediaPlayer.create(this, R.raw.cat_sound);
soundMediaPlayer2.start();
}
public void NewSound(View view) {
MediaPlayer soundMediaPlayer3 = MediaPlayer.create(this, R.raw.new_sound);
soundMediaPlayer3.start();
}
public void LaughTrack(View view) {
MediaPlayer soundMediaPlayer12 = MediaPlayer.create(this, R.raw.laugh_sound);
soundMediaPlayer12.start();
}
public void HorseSound(View view) {
MediaPlayer soundMediaPlayer4 = MediaPlayer.create(this, R.raw.horse_sound);
soundMediaPlayer4.start();
}
public void HeySound(View view) {
MediaPlayer soundMediaPlayer5 = MediaPlayer.create(this, R.raw.hey_sound);
soundMediaPlayer5.start();
}
private void Stop() {
startActivity(new Intent(this, MainActivity.class));
}
public void stop(View view) {
Stop();
}
}
我面临的问题是所有声音重叠并播放。我有一个STOP按钮设置,但不知道如何使它停止媒体。任何反馈都有帮助。
谢谢。
答案 0 :(得分:0)
首先,我只使用一个MediaPlayer实例。然后,您可以使用mediaPlayer.stop()来停止声音并准备下一个声音。 请参阅https://developer.android.com/reference/android/media/MediaPlayer.html
上的状态图答案 1 :(得分:0)
1)使onCreate方法中的MediaPlayer对象不会在每个新方法中创建。 2)在以另一种方法播放音乐之前,首先使用stop()函数停止当前播放的声音(如mediaPlayer.stop();)然后通过start()播放声音。