首页 > 解决方案 > 按下另一个按钮时无法停止 MediaPlayer

问题描述

我不知道我尝试了多少小时,但我不可能使用 android studio 修复它。

当我播放一个按钮时,我尝试按下另一个,两个重叠,真的很烦人,我需要在按下两个按钮中的一个时,再现一个的音频而另一个的音频被取消,我不需要重叠,我无法修复它。

PS 音频超过 1 分钟,所以 SoundPool 对我不起作用。

public void SOUND(View view)
    {
        AZASOUND = MediaPlayer.create(this, R.raw.azaharasound);
        AZASOUND.start();
        if(AZASOUND.isPlaying())
        {
            //AZASOUNDUK.stop();
            //AZASOUNDUK.release();
            //AZASOUNDUK = null;
        }
        super.onPause();
    }

    public void SOUNDUK(View view) {
        AZASOUNDUK = MediaPlayer.create(this, R.raw.azaharausa);
        AZASOUNDUK.start();

        if(AZASOUNDUK.isPlaying())
        {
            AZASOUND.stop();
        }
        else if(AZASOUND.isPlaying()){
            AZASOUNDUK.stop();
        }
        super.onPause();
    }

标签: javaandroidandroid-studio

解决方案


声音重叠是因为您在和方法中创建了单独的MediaPlayer实例。为了避免这种情况,请在类范围内创建一个MediaPlayer的全局实例,并在每个方法中使用这个实例 - 检查 mediaPlayer 是否正在播放 - 并根据这个布尔值停止已经播放的声音并播放另一个。SOUND()SOUNDUK


推荐阅读