如何在android中增加和减少音量

时间:2016-07-20 13:31:32

标签: android

您好我是Android的新手。 我有2个图像按钮。 1用于增加音量而另一个用于减少音量。 我有一个Seekbar来显示增加和减少的水平。 我想要一个Android代码增加以及减少系统量,它也应该反映Seekbar。任何人都可以帮助我

1 个答案:

答案 0 :(得分:0)

audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);

        final SeekBar seekBar = (SeekBar) findViewById(R.id.seekBar);
        Button increaseVolume = (Button) findViewById(R.id.button2);
        Button decreaseVolume = (Button) findViewById(R.id.button3);

        seekBar.setMax(audio.getStreamMaxVolume(AudioManager.STREAM_MUSIC));
        seekBar.setProgress(audio.getStreamVolume(AudioManager.STREAM_MUSIC));

        seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                if (fromUser) {
                    audio.setStreamVolume(AudioManager.STREAM_MUSIC, progress, AudioManager.FLAG_SHOW_UI);
                }
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {

            }
        });

        increaseVolume.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (seekBar.getProgress() < audio.getStreamMaxVolume(AudioManager.STREAM_MUSIC)) {
                    seekBar.setProgress(seekBar.getProgress() + 1);
                    audio.setStreamVolume(AudioManager.STREAM_MUSIC, seekBar.getProgress(), AudioManager.FLAG_SHOW_UI);
                }
            }
        });

        decreaseVolume.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (seekBar.getProgress() > 0) {
                    seekBar.setProgress(seekBar.getProgress() - 1);
                    audio.setStreamVolume(AudioManager.STREAM_MUSIC, seekBar.getProgress(), AudioManager.FLAG_SHOW_UI);
                }
            }
        });