【问题标题】:Seek Bar As volume not changing upon clicking on Device buttons搜索栏因为单击设备按钮后音量不变
【发布时间】:2014-01-05 12:22:22
【问题描述】:

好的,所以我让我的搜索栏来更改音量,这部分正在工作。但是当我改变手机按钮的音量时,屏幕上的搜索栏保持不变。 问题:当我增加/减少电话按钮的音量时,SeekBar 没有移动增加减少。 如何设置?

import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
 private SeekBar volumeSeekbar = null;
private AudioManager audioManager = null; 

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

【问题讨论】:

标签: android button device volume seekbar


【解决方案1】:

这很正常,因为您需要在使用硬件音量按钮时要求得到通知。

我看到该类型问题的多个答案,似乎这个答案是一个普遍的答案:

Is there a broadcast action for volume changes?

【讨论】:

    【解决方案2】:
    private void initControls() {
        // Return the handle to a system-level service - 'AUDIO'.
        audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
    
        // Find the seekbar 1
        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));
    
        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);
                        }
                    });
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    public boolean onKeyDown(int keyCode, KeyEvent event) {
          if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) 
         { 
              mediaVlmSeekBar = (SeekBar) findViewById(R.id.seekBar1);
                int index = mediaVlmSeekBar.getProgress(); 
                mediaVlmSeekBar.setProgress(index + 1); 
                return true; 
         } else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN)
          {
                int index = mediaVlmSeekBar.getProgress(); 
                mediaVlmSeekBar.setProgress(index - 1); 
                return true; 
         }
          return super.onKeyDown(keyCode, event); 
         }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-14
      • 2020-02-27
      相关资源
      最近更新 更多