Payday Loan Payday Loan

How to change the volume using a seekbar

Hi.
This is Bogdan with another interesting , I hope, tutorial for http://androidgenuine.com .

Today I will show you how to adjust the sound of the mediaplayer using a seekbar. I guess you have at least one song on your phone to check if the change of volume works but in any case I also put in this project 3 buttons : Start , Pause and Stop ; to control the song I added.
I hope you do not dislike the song so much. Anyway, I like this song so that’s why it is Maroon 5 – Moves Like Jagger.

Ok. The structure is simple :
-I have a class called: ControlVolume.class
-An xml file : mylayout.xml (like usual)
-This is important .Be focused. I created a new folder in type resources (res) called raw where I added the song.

Here is ControlVolume.class:

public class ControlVolume extends Activity implements OnSeekBarChangeListener{   //We neww onseekbarchangelistener so I implemented it
 
	//Here I declare some stuff
 
	private static TextView reading = null;
	AudioManager audioManager;
	  MediaPlayer oSong;
	  int stopped =1 ;
	    @Override
 
	    public void onCreate(Bundle savedInstanceState) {
	        super.onCreate(savedInstanceState);
	        setContentView(R.layout.mylayout); //The layout that we are using
 
	        //Here is a song that I have in a folder that I create in resources.
	        //The name of the folder is raw and there is my song called "melodie"
	        //Actually the song is Maroon 5 - Moves Like Jaggar
			oSong = MediaPlayer.create(ControlVolume.this, R.raw.melodie);
			//Here is the textview that we are using to show to progress : ?%
			reading = (TextView) findViewById(R.id.reading);
	        SeekBar seekBar = (SeekBar) findViewById(R.id.sbSound);
	        //Here we declare the audioManager . We change the volume with it.
	        audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
	        //We need the stream max volume to set the seekbar's maximum with this value
	        int maxV = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
	        //We want that the default progress of the seekbar to be the value that the sound is in that moment.
	        //For example if the sound is 50%  we want the progress of the seekbar to be at the half of it
			int curV = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
			//Here we set the max and progress like I said above.
			seekBar.setMax(maxV);
			seekBar.setProgress(curV);
			//Here we do some maths to find out the percentage of the volume and the seekbar's progress is.
			int x = (int)(curV*(((float)100/15)));
			//We set the default text for our textview
			reading.setText(""+x+"% ");
			//Here we have the 3 buttons : Start,Pause,Stop; for our song.
			Button bStart = (Button) findViewById(R.id.bStart);
			bStart.setOnClickListener(new View.OnClickListener() {
 
				public void onClick(View arg0) {
					// TODO Auto-generated method stub
					//I am using the int stopped to know if the song is stopped or paused
 
					if(stopped==1){
						//If it is stopped we need to assign it the song we want again.
					oSong = MediaPlayer.create(ControlVolume.this, R.raw.melodie);
					}
					oSong.start();
 
				}
			});	
			Button bPause = (Button) findViewById(R.id.bPause);
			bPause.setOnClickListener(new View.OnClickListener() {
 
				public void onClick(View arg0) {
					// TODO Auto-generated method stub
					oSong.pause();
					//Playing with stopped variable
					stopped=0;
				}
			});	
			Button bStop = (Button) findViewById(R.id.bStop);
			bStop.setOnClickListener(new View.OnClickListener() {
 
				public void onClick(View arg0) {
					// TODO Auto-generated method stub
					oSong.stop();
					stopped=1;
				}
			});	
 
 
	   //We set the onseekbarchangelistener
	        seekBar.setOnSeekBarChangeListener(this);
	        }
		public void onProgressChanged(SeekBar arg0, int progress, boolean arg2) {
			// TODO Auto-generated method stub
			//We update the textview with actual progress
			int x = (int)(progress*(((float)100/15)));
			reading.setText(""+x+"% ");
			//We update the sound with actual progress of the seekbar
			audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, progress, 0);
		}
		public void onStartTrackingTouch(SeekBar arg0) {
			// TODO Auto-generated method stub
 
		}
		public void onStopTrackingTouch(SeekBar arg0) {
			// TODO Auto-generated method stub
 
		}
 
	}

Here is the XML file :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="20dp">
 
 
    <LinearLayout 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:layout_gravity="center"
    >
 
        <Button
            android:id="@+id/bStart"
            android:layout_width="80dip"
            android:layout_height="wrap_content"
            android:text="Start" />
 
         <Button
            android:id="@+id/bPause"
            android:layout_width="80dip"
            android:layout_height="wrap_content"
            android:text="Pause" />
         <Button
            android:id="@+id/bStop"
            android:layout_width="80dip"
            android:layout_height="wrap_content"
            android:text="Stop" />
 
        </LinearLayout>
    <SeekBar
        android:id="@+id/sbSound"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
 
         />
 
	<TextView 
	    android:id="@+id/reading"
	    android:text="0%"
	    android:layout_width="wrap_content"
	    android:layout_height="wrap_content"
	    android:textSize="40dp"
	    android:layout_gravity="center"
 
	    />
 
</LinearLayout>

Here is a picture where you can see how the application looks like:

You can download the entire project, like always, from here.

This was all for this tutorial. I hope you understood and liked it. See you with more new and interesting stuff . Bye!

||||| 0 I Like It! |||||

Search

Popular

Sponsors