内部にボリューム コントロール用のシークバーを備えたプレーヤー アプリがあります。私はこのコードを使用します:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_VOLUME_UP)
{
int index = volumeSeekbar.getProgress();
volumeSeekbar.setProgress(index + 1);
return true;
} else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
int index = volumeSeekbar.getProgress();
volumeSeekbar.setProgress(index - 1);
return true;
}
return super.onKeyDown(keyCode, event);
}
コードはうまく機能します。ハードウェアのボリューム コントロールの下/上ボタンを押すと、シークバーが移動します。しかし今、Android の音量ダイアログに問題があります。ハードウェア ボタンを押しても表示されなくなりました。写真のダイアログを意味します:
それを修正して通常どおり音量ダイアログを表示するにはどうすればよいですか?
編集:
を使用するための私のコードは次のAudioManager
とおりです。
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);
}
});
}
...
}