2012-04-19 20 views

Respuesta

5

El código siguiente se puede utilizar:

import android.app.Activity; 

import android.content.Context; 

import android.media.AudioManager; 

import android.os.Bundle; 

import android.widget.SeekBar; 

import android.widget.SeekBar.OnSeekBarChangeListener; 

public class MainActivity extends Activity { 

/** Called when the activity is first created. */ 

private SeekBar volumeSeekbar = null; 

private AudioManager audioManager = null; 

@Override 

public void onCreate(Bundle savedInstanceState) 

{ 

    super.onCreate(savedInstanceState); 
    setVolumeControlStream(AudioManager.STREAM_MUSIC); 
    setContentView(R.layout.main); 
    initControls(); 
} 

private void initControls() 

{ 

    try 
    { 
     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) 
      { 
      } 

      @Override 
      public void onStartTrackingTouch(SeekBar arg0) 
      { 
      } 

      @Override 
      public void onProgressChanged(SeekBar arg0, int progress, boolean arg2) 
      { 
       audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 
         progress, 0); 
      } 
     }); 
    } 
    catch (Exception e) 
    { 
     e.printStackTrace(); 
    } 
} 
+0

¿Está la escala lineal del volumen ? Leí en alguna parte que debería ser logarítmico. – wayway

Cuestiones relacionadas