媒体播放器暂停按钮,然后播放,媒体从头开始

时间:2016-08-26 20:56:24

标签: android android-mediaplayer

我正在尝试制作一个带有播放,暂停和停止按钮的简单媒体播放器。播放和停止按钮工作正常。但是,暂停按钮的行为类似于停止按钮。当我在暂停后点击播放按钮时,它从头开始。

Button one = (Button) findViewById(R.id.mediaButton);
    Button two = (Button) findViewById(R.id.mediaButton2);
    Button three = (Button) findViewById(R.id.mediaButton3);
    final MediaPlayer mp = new MediaPlayer();




    one.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            if (mp.isPlaying()) {

                return;
            }

            try {
                mp.reset();
                AssetFileDescriptor afd;
                afd = getAssets().openFd("Urge_Surfing.mp3");
                mp.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
                mp.prepare();
                mp.setLooping(false);
                mp.start();
            } catch (IllegalStateException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }


    });

    two.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            if (mp.isPlaying()) {

                mp.pause();
            } else {
                return;

            }


        }


    });


    three.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            if (mp.isPlaying()) {

                mp.stop();
                mp.reset();

            } else {
                return;

            }


        }


    });

1 个答案:

答案 0 :(得分:0)

我认为问题是reset()电话 根据{{​​3}},start()是从同一地点恢复所需的唯一电话 尝试跟踪您的状态,如果您处于PAUSED州,请仅拨打start()以继续 我已经使用这个小state machine来跟踪MediaPlayer的当前状态。