我该如何处理计时问题onCompletionListener

时间:2019-01-08 07:54:17

标签: android android-mediaplayer

我在处理onCompletion函数时遇到问题。 我认为这是时间上的问题,但不完全了解。 这是东西:

我有几个按钮可以播放简短的原始文件。每次按下按钮时,按钮上的图像应从“播放”按钮变为“暂停”按钮。 声音结束后,应再次显示“播放图标”。

当我尝试此操作时,在开始播放和结束播放声音之前没有任何动作时,效果很好。图标更改正确

但是!当我在播放过程中按另一个按钮时,第一声音的暂停图标保持显示。

我现在尝试了几种方法,例如实现全局变量,例如一种信号量(但没有多线程)。

如果有必要,我可以尝试添加视频(但是我是新来的,所以我必须研究它的工作原理)

代码如下:

公共无效播放检查(MediaPlayer mMediaPlayer,ImageView btn){         btnPlaying = btn;

    if (semAudio == false) {
        semAudio = true;
        mMediaPlayer.start();
        btnPlaying.setImageResource(R.drawable.ic_pause_circle_outline_white_24dp);
        mMediaPlayer
                .setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                    public void onCompletion(MediaPlayer mp) {
                        btnPlaying.setImageResource(R.drawable.ic_play_circle_outline_white_24dp);
                        semAudio = false;
                    };
                });
    }
}

0 个答案:

没有答案