java - 多次按下按钮时如何使声音重叠?

标签 java android audio android-mediaplayer

我是 Android java 编程的新手,但我已经使用 Java 编程很长时间了。我创建了一个微型应用程序,它会在单击按钮时播放声音。理想情况下,单击按钮时,该按钮应播放一段声音,该声音会播放整个长度,而当声音仍在播放时单击该按钮,它将播放与当前声音重叠的相同声音。虽然,在我的应用程序中,在播放声音时按下它不会做任何事情,它只会在声音播放完毕后按下时播放声音。

我已经尝试在按下时为 sound.start() 创建一个新线程,这样它就会像我希望的那样重叠,但是在为创建线程时出现错误声音(无法解析符号“开始”)。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Button that is pressed to play the sound.
    imgBtn = findViewById(R.id.imageViewItm);

    // The sound that is played.
    final MediaPlayer sound = MediaPlayer.create(this, R.raw.sound_stuff);

    //Listener that will run the onClick() method when imgBtn is pressed.
    imgBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            //Plays sound
            sound.start();
        }
    });
}

最佳答案

我认为每次单击按钮时创建一个新的 MediaPlayer 应该可以正常工作。我还没有测试代码。如果您遇到错误,请告诉我。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //Button that is pressed to play the sound.
    imgBtn = findViewById(R.id.imageViewItm);

    //Listener that will run the onClick() method when imgBtn is pressed.
    imgBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            //Plays sound
            MediaPlayer sound = MediaPlayer.create(MainActivity.this, R.raw.sound_stuff);
            sound.start();
        }
    });
}

关于java - 多次按下按钮时如何使声音重叠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57600589/

相关文章:

Spring-Hibernate-MySQL 应用程序中的 javax.el.PropertyNotFoundException : Property not found on type java. lang.String

android - minSdkVersion Google Play Adob​​e AIR

python - 有没有办法使用 python 将 mp3/音频文件输入到麦克风输入?

audio - 嵌入式系统:哪个平台或板?

iphone - 在 iPhone 上播放时更改音频的音调

java - 应用在 java 中作为字符串找到的运算符的最优雅方法?

Java正则表达式,匹配以x开头、以y结尾的段落

Java 8 Stream 添加元素到列表和求和

android - 使用GSON解析JSON

android - 在 Android 中获取 NFC 硬件 ID