Nick Kahn
Nick Kahn

Reputation: 20078

Android: Show Media Volume Slider on the UI

UPDATE:

so i am using seekbar and Seekbar and hook up the listeners

onCreate method:

audio = (AudioManager)  this.getSystemService(Context.AUDIO_SERVICE); 
volume_label.setText(String.valueOf(volume));*/ 
volumebar.setMax(audio.getStreamMaxVolume(AudioManager.STREAM_MUSIC)); 
volumebar.setProgress(60); 
volumebar.setOnSeekBarChangeListener(VolumeChange); 

this.setVolumeControlStream(AudioManager.STREAM_MUSIC);


private OnSeekBarChangeListener VolumeChange = new  OnSeekBarChangeListener()
    { 
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser)
        { 
            int index = seekbar.getProgress(); 
             audio.setStreamVolume(AudioManager.STREAM_MUSIC, index, 1); 
           //  volume_label.setText(String.valueOf(index)); 
        } 
        public void onStartTrackingTouch(SeekBar seekBar) 
        {
            //
        } 

        public void onStopTrackingTouch(SeekBar seekBar) 
        {
            //
        } 
    };

but i can use the seeker but does not effect the audio sound, try to increase and decrease the sound but no effect, what else should i be implementing?

UPDATE END

I am working on a MediaPlayer which has play/pause/prev/next/seeker everything works as expected and I am planning to add volume slider so user can change the volume instead of using hardware volume up/down buttons.

i tried this code but did not show-up on the UI like.

Inside onCreate Method:

Activity.setVolumeControlStream(AudioManager.STREAM_MUSIC)  

AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 40, AudioManager.FLAG_PLAY_SOUND);

Upvotes: 3

Views: 6797

Answers (1)

Nick Kahn
Nick Kahn

Reputation: 20078

Hope this helps other... here is how i able to achieved:

  leftAm = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
    int maxVolume = leftAm.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
    int curVolume = leftAm.getStreamVolume(AudioManager.STREAM_MUSIC);
    SeekBar volControl = (SeekBar)findViewById(R.id.leftVolume);
    volControl.setMax(maxVolume);
    volControl.setProgress(curVolume);
    volControl.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {


    @Override
    public void onStopTrackingTouch(SeekBar arg0) {
     // TODO Auto-generated method stub
    }

    @Override
    public void onStartTrackingTouch(SeekBar arg0) {
     // TODO Auto-generated method stub
    }

    @Override
    public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {
     // TODO Auto-generated method stub
     leftAm.setStreamVolume(AudioManager.STREAM_MUSIC, arg1, 0);
    }
   });  

.xml:

<SeekBar
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:id="@+id/volumebar"
            android:max="100"
            android:paddingBottom="10dip"/>

Upvotes: 9

Related Questions