5

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

4

2 回答 2

6

使用AudioManager和方法之类的adjustStreamVolume()这是一个示例应用程序,它使用SeekBar小部件来调整各种流的音量。

于 2012-04-19T14:18:26.033 回答
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();
    }
}
于 2012-07-26T05:46:14.740 回答