メディアの音量を変更できますか? そしてどうやって?私はこれまでこれを使用しました:
setVolumeControlStream(AudioManager.STREAM_MUSIC);
ただし、シークバーがあり、呼び出し音の音量ではなく、メディアの音量を変更したい。
それで、誰かがメディアの音量を変更する方法を教えてくれませんかonCreate()
。後でシークバーを修正します。
メディアの音量を変更できますか? そしてどうやって?私はこれまでこれを使用しました:
setVolumeControlStream(AudioManager.STREAM_MUSIC);
ただし、シークバーがあり、呼び出し音の音量ではなく、メディアの音量を変更したい。
それで、誰かがメディアの音量を変更する方法を教えてくれませんかonCreate()
。後でシークバーを修正します。
使用する適切な方法は、 のsetStreamVolumeですAudioManager
。このように見えるかもしれません
AudioManager audioManager =
(AudioManager)getSystemService(Context.AUDIO_SERVICE);
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC,
[int value],
[if desired a flag]);
フラグの使用例は、音量を設定するときにビープ音を鳴らして、ユーザーが結果を聞くことができるようにすることです。そのためのフラグはAudioManager.FLAG_PLAY_SOUND
.
AudioManager.FLAG_SHOW_UI
サウンドを再生するのではなく、現在の値でトーストを表示する場合に使用できます。使用にはフィードバックが必要です。聴覚的か視覚的かは関係ありません。
指定されたストリームの最大有効値を取得するには、 を呼び出しgetStreamMaxVolume()
てAudioManager
、ボリュームの最大有効値を表す整数を取得します。
private AudioManager audio;
onCreate の内部:
audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
onKeyDown をオーバーライドします。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_VOLUME_UP:
audio.adjustStreamVolume(AudioManager.STREAM_MUSIC,
AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI);
return true;
case KeyEvent.KEYCODE_VOLUME_DOWN:
audio.adjustStreamVolume(AudioManager.STREAM_MUSIC,
AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI);
return true;
default:
// return false;
// Update based on @Rene comment below:
return super.onKeyDown(keyCode, event);
}
}
フラグに 0 を指定すると、ビジュアルおよびオーディオ インジケータの取得が回避されます。これは、独自のオーディオ バーとインジケーターを実装し、Android に何も追加させたくない場合に適しています。
使用するadjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_RAISE, flags);
http://developer.android.com/reference/android/media/AudioManager.html#adjustStreamVolume(int , int, int)