Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java android studio中的Seekbar不更改音量_Java_Android_Android Studio - Fatal编程技术网

Java android studio中的Seekbar不更改音量

Java android studio中的Seekbar不更改音量,java,android,android-studio,Java,Android,Android Studio,所以我一直在尝试将4个seekbar添加到一个基本的应用程序中,以便更好地使用androidstudio。但是,seekbar似乎不会改变音量。有人能解释为什么会这样吗?谢谢 package com.example.example.examples; import android.content.Context; import android.media.AudioManager; import android.os.Bundle; import android.widget.SeekBar

所以我一直在尝试将4个seekbar添加到一个基本的应用程序中,以便更好地使用androidstudio。但是,seekbar似乎不会改变音量。有人能解释为什么会这样吗?谢谢

package com.example.example.examples;


import android.content.Context;
import android.media.AudioManager;
import android.os.Bundle;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;

public class seekBarActivity extends MainActivity {

    public AudioManager audioManager = null;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //Suggests an audio stream whose volume should be changed by the hardware volume control
        this.setVolumeControlStream(AudioManager.STREAM_MUSIC);
        this.setVolumeControlStream(AudioManager.STREAM_RING);
        this.setVolumeControlStream(AudioManager.STREAM_ALARM);
        this.setVolumeControlStream(AudioManager.STREAM_NOTIFICATION);

        setContentView(R.layout.activity_main);
        initControls();
    }



    private void initControls() {
        //Return the handle to a system-level service - 'AUDIO'.
        audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);





        //Find the seekbar 1
        SeekBar mediaVlmSeekBar = (SeekBar) findViewById(R.id.seekBar1);
        //Set the max range(Volume in this case) of seekbar
        //for Media player volume
        mediaVlmSeekBar.setMax(audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC));

        //Set the progress with current Media Volume
        mediaVlmSeekBar.setProgress(audioManager.getStreamVolume(AudioManager.STREAM_MUSIC));





        //Find the seekbar 2
        SeekBar ringerVlmSeekBar = (SeekBar) findViewById(R.id.seekBar2);

        //Set the max range(Volume in this case) of seekbar for Phone ringer volume
        ringerVlmSeekBar.setMax(audioManager.getStreamMaxVolume(AudioManager.STREAM_RING));

        //Set the progress with current Ringer Volume
        ringerVlmSeekBar.setProgress(audioManager.getStreamVolume(AudioManager.STREAM_RING));




        //Find the seekbar 3
        SeekBar alarmVlmSeekBar = (SeekBar) findViewById(R.id.seekBar3);

        //Set the max range(Volume in this case) of seekbar for Alarm volume
        alarmVlmSeekBar.setMax(audioManager.getStreamMaxVolume(AudioManager.STREAM_ALARM));

        //Set the progress with current Alarm Volume
        alarmVlmSeekBar.setProgress(audioManager.getStreamVolume(AudioManager.STREAM_ALARM));



        //Find the seekbar 4
        SeekBar notifyVlmSeekBar = (SeekBar) findViewById(R.id.seekBar4);

        //Set the max range(Volume in this case) of seekbar for Notification volume
        notifyVlmSeekBar.setMax(audioManager.getStreamMaxVolume(AudioManager.STREAM_NOTIFICATION));

        //Set the progress with current Notification Volume
        notifyVlmSeekBar.setProgress(audioManager.getStreamVolume(AudioManager.STREAM_NOTIFICATION));




        try {
            //Listener to receive changes to the SeekBar1's progress level
            mediaVlmSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
                        public void onStopTrackingTouch(SeekBar arg0) {
                        }

                        public void onStartTrackingTouch(SeekBar arg0) {
                        }
                        //When progress level of seekbar1 is changed
                        public void onProgressChanged(SeekBar arg0, int progress, boolean arg2) {
                            audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, progress, 0);
                        }
                    });

            //Listener to receive changes to the SeekBar2's progress level
            ringerVlmSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
                        public void onStopTrackingTouch(SeekBar arg0) {
                        }

                        public void onStartTrackingTouch(SeekBar arg0) {
                        }
                        //When progress level of seekbar2 is changed
                        public void onProgressChanged(SeekBar arg0, int progress, boolean arg2) {
                            audioManager.setStreamVolume(AudioManager.STREAM_RING, progress, 0);
                        }
                    });

            //Listener to receive changes to the SeekBar3's progress level
            alarmVlmSeekBar
                    .setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
                        public void onStopTrackingTouch(SeekBar arg0) {
                        }

                        public void onStartTrackingTouch(SeekBar arg0) {
                        }
                        //When progress level of seekbar3 is changed
                        public void onProgressChanged(SeekBar arg0, int progress, boolean arg2) {
                            audioManager.setStreamVolume(AudioManager.STREAM_ALARM, progress, 0);
                        }
                    });

            //Listener to receive changes to the SeekBar4's progress level
            notifyVlmSeekBar
                    .setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
                        public void onStopTrackingTouch(SeekBar arg0) {
                        }

                        public void onStartTrackingTouch(SeekBar arg0) {
                        }
                        //When progress level of seekbar4 is changed
                        public void onProgressChanged(SeekBar arg0, int progress, boolean arg2) {
                            audioManager.setStreamVolume(AudioManager.STREAM_NOTIFICATION, progress,0);
                        }
                    });
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

为什么要在代码示例的末尾捕捉异常?我只使用了几天,我是一个完全的初学者。我一直在网上学习其他人的代码示例。检查是否需要刷新活动以通知更改,invalidate()在与视图中的更改相关的情况下执行此操作,因此我猜卷可能也需要刷新。