Reputation: 55
I wanted to set the volume of my mediaplayer object with the help of seekbar. I used its setVolume() method in my app, but it is of no use as there's no change in volume. here's my code:
setVolumeControlStream(AudioManager.STREAM_MUSIC);
volumeSeekbar=(SeekBar)findViewById(R.id.seekBar1);
audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
volumeSeekbar.setMax(audioManager
.getStreamMaxVolume(AudioManager.STREAM_MUSIC));
volumeSeekbar.setProgress(audioManager
.getStreamVolume(AudioManager.STREAM_MUSIC));
volumeSeekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar arg0) {
// TODO Auto-generated method stub
Log.i(tag,"touch stopped");
}
@Override
public void onStartTrackingTouch(SeekBar arg0) {
// TODO Auto-generated method stub
Log.i(tag,"touch started");
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
//mp is the mediaplayer object..
mp.setVolume(progress, progress);
Log.i(tag,"working with seekbar");
}
});
}
audioManager and volumeseekbar are initialized.
Upvotes: 0
Views: 3176
Reputation: 1967
Use the Below Code it worked for mee..
private SeekBar mSeekBarVolume;
private AudioManager audioManager;
private int maxVolume;
private int curVolume;
/**
* To initialize the seek bar
*/
private void initialiseSeekBar() {
maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
curVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
mSeekBarVolume.setMax(maxVolume);
mSeekBarVolume.setProgress(curVolume);
mSeekBarVolume
.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar arg0) {
}
@Override
public void onStartTrackingTouch(SeekBar arg0) {
}
@Override
public void onProgressChanged(SeekBar arg0, int arg1,
boolean arg2) {
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC,
arg1, 0);
}
});
}
Upvotes: 3