【问题标题】:Android : How to set the seekbar progress on increase/decrease of device volume and vice versa.?Android:如何在设备音量的增加/减少时设置搜索栏进度,反之亦然。?
【发布时间】:2014-07-13 16:15:30
【问题描述】:

在一个 android 应用程序中,我想将设备音量设置为搜索栏。设备音量的变化必须改变搜索栏进度,反之亦然。有人可以帮我解决这个问题吗?

更新 1 : 这是我尝试过的

  1. 初始化AudioManager

    AudioManager mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);

  2. 使用设置设备音量

    如果 (mAudioManager != null) { mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 音量, 0); //音量 - 来自搜索栏的进度值 }

现在,如果搜索栏值发生变化,此代码会更新设备的音量。但是,如果设备的音量发生变化,我该如何更新搜索栏值。?

【问题讨论】:

  • 你试过了吗?
  • @Ascorbin :是的,我试过了。请检查我对这个问题的更新。

标签: android media device volume seekbar


【解决方案1】:

这就是我解决问题的方法..

在您的活动中覆盖 onKeyDown() 方法。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    // if one of the volume keys were pressed
    if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
        // change the seek bar progress indicator position
        decreaseSeekbarValue();
    } else if(keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
        // change the seek bar progress indicator position
        increaseSeekbarValue();
    }
    // propagate the key event
    return super.onKeyDown(keyCode, event);
}

【讨论】:

  • 请输入您的reductionSeekbarValue();并增加SeekbarValue();
【解决方案2】:

试试这个:

AudioManager manager = (AudioManager) getSystemService(AUDIO_SERVICE);
MediaButton_Receiver mediaReceiver = new MediaButton_Receiver();
registerMediaButtonEventReceiver(mediaReceiver );

class MediaButton_Receiver implements BroadcastReceiver {
     void onReceive(Intent intent) {

          KeyEvent ke = (KeyEvent)intent.getExtra(Intent.EXTRA_KEY_EVENT); 
          if (ke .getKeyCode() == KeyEvent.KEYCODE_VOLUME_DOWN || ke .getKeyCode() == KeyEvent.KEYCODE_VOLUME_UP) {
              // set the device volume
          }
     } 
}

我觉得应该可以帮到你:)

【讨论】:

  • Slyzz,它真的帮助了我.. 非常感谢 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-23
  • 2012-04-21
  • 1970-01-01
相关资源
最近更新 更多