как установить автоповторное воспроизведение l oop в моем медиаплеере - PullRequest
0 голосов
/ 22 марта 2020

Пожалуйста, кодеры, у меня очень большая проблема. Я установил свой MediaPlayer на l oop при повторном воспроизведении, но seekBar отказался сбросить. Некоторым музыкам c, которые работают дольше, сбрасывается эта панель поиска и начинаются после sh как Surpose.

Пожалуйста, помогите мне решить эту проблему. заранее спасибо!

Это код того, что я пробовал, не сработало.

player = MediaPlayer.create(this, position);

            Toast.makeText(this, "Tune Playing", Toast.LENGTH_SHORT ).show();

            soundSeekBar = (SeekBar) findViewById(R.id.seekBar1);
            soundSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
                @Override
                public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                    if (fromUser){
                        player.seekTo(progress);

                    }
                }

                @Override
                public void onStartTrackingTouch(SeekBar seekBar) {
                    soundSeekBar.setProgress(player.getCurrentPosition());



                }

                @Override
                public void onStopTrackingTouch(SeekBar seekBar) {
                    player.getCurrentPosition();




                }
            });

            player.setLooping(true);


            player.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                @Override
                public void onCompletion(MediaPlayer mp) {

                }


            });
        }
        player.start();
        Toast.makeText(this, "Playing Continues...", Toast.LENGTH_SHORT ).show();
        soundThread = new Thread(this);
        soundThread.start();


    }
    public void pause(View v) {
        if (player != null) {
            player.pause();
            Toast.makeText(this, "Tune Paused", Toast.LENGTH_SHORT ).show();
        }
    }
    public void stop(View v) {
        stopPlayer();
    }
    private void stopPlayer() {
        if (player != null) {
            player.release();
            player = null;
            Toast.makeText(this, "Tune Stoped", Toast.LENGTH_SHORT ).show();
        }


    }
    @Override
    protected void onStop() {
        super.onStop();
        stopPlayer();
    }

    @Override
    public void run() {
        int currentPosition = 0;
        int soundTotal = player.getDuration();
        soundSeekBar.setMax(soundTotal);
        while (player != null && currentPosition < soundTotal){
            try {
                Thread.sleep(300);
                currentPosition = player.getCurrentPosition();
            }
            catch (InterruptedException soundException){
                return;
            }
            catch (Exception otherException){
                return;
            }
            soundSeekBar.setProgress(currentPosition);
        }

    }

    @Override
    public void onPointerCaptureChanged(boolean hasCapture) {

    }
...