在我的Launchpad Simulator
中,主要 Activity 上有很多按钮。我想在每次按下按钮时播放声音。如果同时按下按钮,我想同时播放声音。从我现在所做的事情来看,似乎每当我按下按钮时,它都会播放声音,但是由于第一个声音长3秒(例如,拍手声音文件的播放时间长3秒)。
在通过按钮产生任何其他声音之前,它会等待3秒钟,如果3秒钟后按下任何按钮,则播放下一个声音,该声音与其他32个按钮相同。
就像启动板一样,只要按下按钮,我就想播放声音。在这种情况下拍手声。
这是Java代码:
MainActivity.java
package com.oniichansblog.launchpadify;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.media.MediaPlayer;
public class MainActivity extends AppCompatActivity {
private MediaPlayer clap1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
clap1 = MediaPlayer.create(this, R.raw.clap1);
}
public void clap1(View v){
clap1.start();
}
}
我只有这个功能
clap1()
,每次按下按钮时都会反复调用它。如果您想自己检查一下,我有一个存储库:
GitHub Repository for LaunchPadify
最佳答案
我建议不要在上面定义MediaPlayer。
只需每个ButtonClick创建一个新的临时MediaPlayer
new MediaPlayer.create(this, R.raw.clap).start();
它会同时播放声音
更新
如果要在播放完声音后销毁MediaPlayer,可以使用以下代码来完成此操作
new MediaPlayer.create(getApplicationContext(), R.raw.test)
.start()
.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
mediaPlayer.release();
}
});
关于java - 在同时按下按钮时播放声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42477742/