java - 在同时按下按钮时播放声音

标签 java android android-studio audio

在我的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/

相关文章:

Java 解析 XML 行的简单方法

java - Arraylist.contains 不会检查字符串

Android - 键盘出现时 ScrollView 不向上推

Android Studio 2.0 预览版 : ':app:transformClassesWithInstantRunForDebug' FAILED

android-studio - 使用 Android Studio(Gradle) 和 Robolectric 时会遗漏一些工件

java - Android LibGDX 着色器兼容性

java - “找不到或加载主类”是什么意思?

java - 无法解析 setOnClickListener 中的符号

android - 如何在一个Activity中包含多个GridView(使用ScrollView),只显示一行?

android studio 0.4.2 + gradle + 安卓源码