Pregunta

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.

¿Fue útil?

Solución

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);
                    }
                });
    }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top