SeekBar and media player in android

前端 未结 12 2040
天涯浪人
天涯浪人 2020-11-28 03:13

I have a simple player and recorder. Everything works great but have a one problem. I want to add seek bar to see progress in playing record and use this seek bar to set pl

12条回答
  •  被撕碎了的回忆
    2020-11-28 03:52

    Try this Code:

    public class MainActivity extends AppCompatActivity {
    
    MediaPlayer mplayer;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
                //You create MediaPlayer variable ==> set the path and start the audio.
    
        mplayer = MediaPlayer.create(this, R.raw.example);
        mplayer.start();
    
                //Find the seek bar by Id (which you have to create in layout)
                // Set seekBar max with length of audio
               // You need a Timer variable to set progress with position of audio
    
        final SeekBar seekBar = (SeekBar) findViewById(R.id.seekBar);
        seekBar.setMax(mplayer.getDuration());
    
        new Timer().scheduleAtFixedRate(new TimerTask() {
                    @Override
                    public void run() {
                        seekBar.setProgress(mplayer.getCurrentPosition());
                    }
                }, 0, 1000);
    
    
                seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
                    @Override
                    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
    
                // Update the progress depending on seek bar
                        mplayer.seekTo(progress);
    
                    }
    
                    @Override
                    public void onStartTrackingTouch(SeekBar seekBar) {
    
                    }
    
                    @Override
                    public void onStopTrackingTouch(SeekBar seekBar) {
    
                    }
                });
            }
    

提交回复
热议问题