首页 > 解决方案 > 带有 Seekbar 的音乐播放器 (Android Studio)

问题描述

完整代码:

public class MainActivity extends AppCompatActivity {

private MediaPlayer mediaPlayer;
private SeekBar seekBar;
private boolean bool = false;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    this.seekBar = (SeekBar) findViewById(R.id.sound_bar);
    this.mediaPlayer = MediaPlayer.create(getApplicationContext(), R.raw.music);

    Timer timer = new Timer();
    timer.schedule(new TimerTask() {
        @Override
        public void run() {
            seekBar.setProgress(mediaPlayer.getCurrentPosition() * seekBar.getMax() / mediaPlayer.getDuration());
        }
    }, 500, 500);

    seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
            mediaPlayer.seekTo(seekBar.getProgress() * mediaPlayer.getDuration() / seekBar.getMax());
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {

        }

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {

        }
    });
}

public void playSound(View view) {

    Button button = (Button) view;

    if(bool) {
        mediaPlayer.pause();
        bool = false;
        button.setText("Jouer le son");
    } else {
        mediaPlayer.start();
        bool = true;
        button.setText("Mettre en pause");
    }
}

@Override
protected void onPause() {
    super.onPause();
    mediaPlayer.pause();
}

@Override
protected void onStart() {
    super.onStart();
    if(bool) {
        mediaPlayer.start();
    }
}

}

标签: javaandroid

解决方案


也许使用另一个线程来控制搜索栏会有所帮助。

看看这个


推荐阅读