SeekBarには次のコードがあります。
setVolumeControlStream(AudioManager.STREAM_MUSIC);
final AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
int maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
int curVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.custom_dialog, (ViewGroup) findViewById(R.id.dialog_root_element));
SeekBar volControl = (SeekBar)alert.findViewById(R.id.dialog_seekbar);
volControl.setMax(maxVolume);
volControl.setProgress(curVolume);
volControl.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar arg0) {
}
@Override
public void onStartTrackingTouch(SeekBar arg0) {
}
@Override
public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, arg1, 0);
}
});
問題は、ユーザーがボリューム デバイス ボタンを使用することを決定したときに、SeekBarを上下に動かしたいということです。
実際、このコードを使用すると、両方の方法 (デバイス ボタンとコード) で音量を正しく制御できますが、音量デバイス ボタンを使用すると、SeekBarが静的になります。
アイデアや提案はありますか?
ありがとうございました!