有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在单击按钮时同时播放不同的声音

我该如何进行 正如你在这里看到的,三种声音同时播放 https://yadi.sk/i/eUtfS0to-0ZreQ

大家好,当我点击按钮时,声音并没有关闭,两个或三个声音同时开始播放。 很抱歉,我在打印机翻译网站上这样做了

     public void music1(View view) {
            contra=MediaPlayer.create(this,R.raw.contraolu);
           contra.start();

        }

        public void music2(View view) {
            tankurt=MediaPlayer.create(this,R.raw.tankurtmaanascenekemiklerim);
            tankurt.start();

        }

        public void music3(View view) {
            norm=MediaPlayer.create(this,R.raw.normenderciktikyineyollara);
            norm.start();

        }




    <Button
            安卓:id="@+id/button"
            安卓:layout_width="match_parent"
            安卓:layout_height="70dp"
            安卓:layout_marginBottom="44dp"
            安卓:onClick="music2"
            安卓:text="Tankur Manas-Çene Kemiklerimi Kırdım"
            安卓:textSize="20dp"
            app:layout_constraintBottom_toTopOf="@+id/button2"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintStart_toStartOf="parent" />

        <Button
            安卓:id="@+id/button2"
            安卓:layout_width="match_parent"
            安卓:layout_height="70dp"
            安卓:layout_marginBottom="144dp"
            安卓:onClick="music3"
            安卓:text="Norm Ender- Çıktık Yine Yollara"

            安卓:textSize="20dp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintStart_toStartOf="parent" />

        <Button
            安卓:id="@+id/button3"
            安卓:layout_width="match_parent"
            安卓:layout_height="70dp"
            安卓:layout_marginTop="32dp"
            安卓:layout_marginEnd="8dp"
            安卓:layout_marginRight="8dp"
            安卓:layout_marginBottom="42dp"
            安卓:onClick="music1"
            安卓:text="Contra-Ölü"
            安卓:textSize="20dp"
            app:layout_constraintBottom_toTopOf="@+id/button"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintVertical_bias="1.0" />

共 (2) 个答案

  1. # 1 楼答案

    使用单个MediaPlayer,在启动另一个新声音之前停止播放

     MediaPlayer mp;
    public void music1(View view) {
                stopPlayingSound();
                mp=MediaPlayer.create(this,R.raw.contraolu);
                mp.start();
    
            }
            public void music2(View view) {
                stopPlayingSound();
                mp=MediaPlayer.create(this,R.raw.tankurtmaanascenekemiklerim);
                mp.start();
    
            }
    
            public void music3(View view) {
                stopPlayingSound();
                mp=MediaPlayer.create(this,R.raw.normenderciktikyineyollara);
                mp.start();
    
            }
    
           void stopPlayingSound() {
                if (mp != null) {
                    mp.stop();
                    mp.release();
                    mp = null;
               }
        }
    
  2. # 2 楼答案

    在播放下一首音乐之前,必须停止播放机。我建议您创建一个名为mediaPlayer的公共字段,然后您可以在每个方法中停止它并用它播放新音乐