Thursday, February 26, 2015
Android Audio Manager New Tutorial
Thursday, February 26, 2015 by Unknown
in post, I will be discussing about using , AudioManager Class in Android applications.
with AudioManager Class provides access to volume and ringer mode control which was added in API level
I wrote separate post about using AudioManager in getting and setting the current device’s volume (Media player, , Notification etc) long back.
But in this post, I am going to discuss about using AudioManager in getting and setting the ringer mode (Silent, Vibrate and Normal).
What is Seekbar?
A SeekBar is an extension of ProgressBar that adds a draggable thumb. The user can touch the thumb and drag left or right to set the current progress level or use the arrow keys.
Usage: Seekbar can be used to adjust media player volume, set brightness of the screen, seek a playing music etc.
What are we going to develop?
We will develop a simple application to demonstrate how it is used to set Media player, Ringer, Alarm and Notification volume for your device.
Open main.xml present under /res/layout folder and replace the XML with the below one.
Application layout will look like:
Change to graphical layout of Main.xml, the layout design should look like below:

Create following objects under SeekBarExampleActivity class to refer seekbars and to get audimanager:
Suggests an audio stream whose volume should be changed by the hardware volume controls. Add following snippet inside onCreate method after ‘super.onCreate(savedInstanceState)’
A separate method ‘initControls’ to handle the seekbars is going to be created, call it inside onCreate method:
Run click on the project >> Run as >> Android application
You could see following screen:

Tags:
Android ,
android_game_devlopment ,
apkedit
with AudioManager Class provides access to volume and ringer mode control which was added in API level
I wrote separate post about using AudioManager in getting and setting the current device’s volume (Media player, , Notification etc) long back.
But in this post, I am going to discuss about using AudioManager in getting and setting the ringer mode (Silent, Vibrate and Normal).
What is Seekbar?
A SeekBar is an extension of ProgressBar that adds a draggable thumb. The user can touch the thumb and drag left or right to set the current progress level or use the arrow keys.
Usage: Seekbar can be used to adjust media player volume, set brightness of the screen, seek a playing music etc.
What are we going to develop?
We will develop a simple application to demonstrate how it is used to set Media player, Ringer, Alarm and Notification volume for your device.
Quick Links.
Project .Structure
Layout creation:- Create new android project [File >> New >> Android Project] with project name SeekBarExample
- Click next and select target android device version [I chose version 2.2]
- Click next and enter package name – ‘com.prgguru.android’
- Click finish
Code Listings
Layout XML:Open main.xml present under /res/layout folder and replace the XML with the below one.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | <?xml version="1.0" encoding="utf-8"?> android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Adjust Media player volume" android:textAppearance="?android:attr/textAppearanceLarge" android:padding="10px"/> <SeekBar android:id="@+id/seekBar1" android:layout_width="match_parent" android:layout_height="wrap_content" /> <TextView android:id="@+id/textView2" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Adjust Ringer volume" android:textAppearance="?android:attr/textAppearanceLarge" android:padding="10px" /> <SeekBar android:id="@+id/seekBar2" android:layout_width="match_parent" android:layout_height="wrap_content" /> <TextView android:id="@+id/textView2" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Adjust Alarm volume" android:textAppearance="?android:attr/textAppearanceLarge" android:padding="10px"/> <SeekBar android:id="@+id/seekBar3" android:layout_width="match_parent" android:layout_height="wrap_content" /> <TextView android:id="@+id/textView2" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Adjust Notification volume" android:textAppearance="?android:attr/textAppearanceLarge" android:padding="10px"/> <SeekBar android:id="@+id/seekBar4" android:layout_width="match_parent" android:layout_height="wrap_content" /></LinearLayout> |
Change to graphical layout of Main.xml, the layout design should look like below:
Create following objects under SeekBarExampleActivity class to refer seekbars and to get audimanager:
1 2 3 4 5 | private SeekBar mediaVlmSeekBar = null;private SeekBar ringerVlmSeekBar = null;private SeekBar alarmVlmSeekBar = null;private SeekBar notifyVlmSeekBar = null;private AudioManager audioManager = null; |
1 2 3 4 | this.setVolumeControlStream(AudioManager.STREAM_MUSIC); this.setVolumeControlStream(AudioManager.STREAM_RING); this.setVolumeControlStream(AudioManager.STREAM_ALARM);this.setVolumeControlStream(AudioManager.STREAM_NOTIFICATION); |
1 | initControls(); |
private void initControls() {//Return the handle to a system-level service - 'AUDIO'.audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);//Find the seekbar 1mediaVlmSeekBar = (SeekBar) findViewById(R.id.seekBar1);//Set the max range(Volume in this case) of seekbar//for Media player volumemediaVlmSeekBar.setMax(audioManager .getStreamMaxVolume(AudioManager.STREAM_MUSIC));//Set the progress with current Media VolumemediaVlmSeekBar.setProgress(audioManager .getStreamVolume(AudioManager.STREAM_MUSIC));//Find the seekbar 2ringerVlmSeekBar = (SeekBar) findViewById(R.id.seekBar2);//Set the max range(Volume in this case) of seekbar//for Phone ringer volumeringerVlmSeekBar.setMax(audioManager .getStreamMaxVolume(AudioManager.STREAM_RING));//Set the progress with current Ringer VolumeringerVlmSeekBar.setProgress(audioManager .getStreamVolume(AudioManager.STREAM_RING));//Find the seekbar 3alarmVlmSeekBar = (SeekBar) findViewById(R.id.seekBar3);//Set the max range(Volume in this case) of seekbar//for Alarm volumealarmVlmSeekBar.setMax(audioManager .getStreamMaxVolume(AudioManager.STREAM_ALARM));//Set the progress with current Alarm VolumealarmVlmSeekBar.setProgress(audioManager .getStreamVolume(AudioManager.STREAM_ALARM));//Find the seekbar 4notifyVlmSeekBar = (SeekBar) findViewById(R.id.seekBar4);//Set the max range(Volume in this case) of seekbar//for Notification volumenotifyVlmSeekBar.setMax(audioManager .getStreamMaxVolume(AudioManager.STREAM_NOTIFICATION));//Set the progress with current Notification VolumenotifyVlmSeekBar.setProgress(audioManager .getStreamVolume(AudioManager.STREAM_NOTIFICATION));try { //Listener to receive changes to the SeekBar1's progress level mediaVlmSeekBar .setOnSeekBarChangeListener(new OnSeekBarChangeListener() { public void onStopTrackingTouch(SeekBar arg0) { } public void onStartTrackingTouch(SeekBar arg0) { } //When progress level of seekbar1 is changed public void onProgressChanged(SeekBar arg0, int progress, boolean arg2) { audioManager.setStreamVolume( AudioManager.STREAM_MUSIC, progress, 0); } }); //Listener to receive changes to the SeekBar2's progress level ringerVlmSeekBar .setOnSeekBarChangeListener(new OnSeekBarChangeListener() { public void onStopTrackingTouch(SeekBar arg0) { } public void onStartTrackingTouch(SeekBar arg0) { } //When progress level of seekbar2 is changed public void onProgressChanged(SeekBar arg0, int progress, boolean arg2) { audioManager.setStreamVolume( AudioManager.STREAM_RING, progress, 0); } }); //Listener to receive changes to the SeekBar3's progress level alarmVlmSeekBar .setOnSeekBarChangeListener(new OnSeekBarChangeListener() { public void onStopTrackingTouch(SeekBar arg0) { } public void onStartTrackingTouch(SeekBar arg0) { } //When progress level of seekbar3 is changed public void onProgressChanged(SeekBar arg0, int progress, boolean arg2) { audioManager.setStreamVolume( AudioManager.STREAM_ALARM, progress, 0); } }); //Listener to receive changes to the SeekBar4's progress level notifyVlmSeekBar .setOnSeekBarChangeListener(new OnSeekBarChangeListener() { public void onStopTrackingTouch(SeekBar arg0) { } public void onStartTrackingTouch(SeekBar arg0) { } //When progress level of seekbar4 is changed public void onProgressChanged(SeekBar arg0, int progress, boolean arg2) { audioManager.setStreamVolume( AudioManager.STREAM_NOTIFICATION, progress,0); } });} catch (Exception e) { e.printStackTrace();}} |
Demo
Let us test the application:Run click on the project >> Run as >> Android application
You could see following screen:
Subscribe to:
Post Comments (Atom)

0 Responses to “Android Audio Manager New Tutorial ”
Post a Comment