Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.userinterface;
- import androidx.appcompat.app.AppCompatActivity;
- import android.media.AudioManager;
- import android.media.MediaPlayer;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.Button;
- import android.widget.SeekBar;
- import android.widget.TextView;
- import org.w3c.dom.Text;
- import java.util.Timer;
- import java.util.TimerTask;
- public class AudioControl extends AppCompatActivity {
- private MediaPlayer mediaPlayer;
- private Button pauseButton;
- private Button playButton;
- private SeekBar seekBarPosition;
- private SeekBar seekBarVolume;
- private TextView currentPositionText;
- private TextView totalTimeText;
- private TextView totalVolume;
- private AudioManager audioManager;
- private String msToSeconds(int i){
- int seconds = i / 1000;
- double minutes = 0;
- if(seconds > 60)
- minutes = seconds / 60;
- seconds -= (minutes * 60);
- return Integer.toString((int) Math.round(minutes)) + ":" + ((seconds < 10) ? "0" + Integer.toString(seconds) : Integer.toString(seconds));
- }
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_audio_control);
- initializeWidgets();
- audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
- seekBarVolume.setProgress(audioManager.getStreamVolume(AudioManager.STREAM_MUSIC));
- int maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
- setSeekbars(maxVolume);
- }
- private void setSeekbars(int maxVolume) {
- seekBarPosition.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
- @Override
- public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
- currentPositionText.setText(msToSeconds(i));
- }
- @Override
- public void onStartTrackingTouch(SeekBar seekBar) {
- }
- @Override
- public void onStopTrackingTouch(SeekBar seekBar) {
- mediaPlayer.seekTo(seekBar.getProgress());
- }
- });
- seekBarVolume.setMax(maxVolume);
- seekBarVolume.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
- @Override
- public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
- audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, i, 0);
- }
- @Override
- public void onStartTrackingTouch(SeekBar seekBar) {
- }
- @Override
- public void onStopTrackingTouch(SeekBar seekBar) {
- }
- });
- }
- private void initializeWidgets() {
- mediaPlayer = MediaPlayer.create(this, R.raw.thescotts);
- pauseButton = (Button) findViewById(R.id.pauseBtn);
- playButton = (Button) findViewById(R.id.playBtn);
- seekBarPosition = (SeekBar) findViewById(R.id.seekBarTime);
- seekBarVolume = (SeekBar) findViewById(R.id.seekBarVolume);
- currentPositionText = (TextView) findViewById(R.id.positionText);
- totalTimeText = (TextView) findViewById(R.id.totalTimeText);
- totalVolume = (TextView)findViewById(R.id.volumeText);
- seekBarPosition.setMin(0);
- seekBarPosition.setMax(mediaPlayer.getDuration());
- seekBarVolume.setMin(0);
- seekBarVolume.setMax(100);
- currentPositionText.setText(Integer.toString(mediaPlayer.getCurrentPosition()));
- totalTimeText.setText(msToSeconds(mediaPlayer.getDuration()));
- new Timer().scheduleAtFixedRate(new TimerTask() {
- @Override
- public void run() {
- seekBarPosition.setProgress(mediaPlayer.getCurrentPosition());
- }
- }, 0, 300);
- }
- public void play(View view){
- if(!mediaPlayer.isPlaying()) mediaPlayer.start();
- }
- public void pause(View view){
- if(mediaPlayer.isPlaying()) mediaPlayer.pause();
- }
- }
Add Comment
Please, Sign In to add comment