如何在android中从搜索栏更改设备音量

时间:2012-04-19 14:14:08

标签: android

我知道如何从seekbar控制媒体播放器的音量。但是我该如何从android中的seekbar更改系统音量。

2 个答案:

答案 0 :(得分:6)

使用AudioManageradjustStreamVolume()等方法。 Here is a sample application使用SeekBar小部件来调整各种流的数量。

答案 1 :(得分:5)

可以使用以下代码:

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();
    }
}