2011-07-22 33 views
24

私は通常の音量ボタンを使用して私のアプリでメディアボリュームを制御したいと思います。 問題は私のアプリが短い音を使用していることで、ユーザーにとって迷惑になることがあります。メディアボリュームは、再生中(1秒間)にのみ調整することができ、その後、リンガーボリュームの調整を開始します。 メディアボリュームをデフォルトにするにはどうしたらいいですか?メディアボリュームを制御する方法は?

答えて

45

()あなたが行うことができます。

setVolumeControlStream(AudioManager.STREAM_MUSIC); 
+0

ありがとう、それはうまく動作します。 –

+0

@ケビン:+1、私はその方法について知りませんでした - 私のアプローチよりも少しシンプルです。 ;-) – Squonk

+0

2つのボリュームコントロールストリームが必要な場合はどうすればよいですか? –

3

私はこれを試していませんが、アクティビティでonKeyDown(int keyCode, KeyEvent event)を上書きして通常の音量ボタンを傍受することができます。キーコードKEYCODE_VOLUME_UPおよびKEYCODE_VOLUME_DOWNを確認します。 streamTypeパラメータにSTREAM_MUSICAudioManager.setStreamVolume(int, int, int)を使用して

は動作するはずですし、あなたは(あなたがイベントを処理してきた示すために)onKeyDown(...)メソッドからtrueを返す場合、それは着信音の音量を調整するからシステムを防ぐ必要があります。処理していない他のすべてのキーコードについてはfalseを返すようにしてください。あなたの活動ののonCreateで

+0

2つのボリュームコントロールストリームが必要な場合はどうすればよいですか? –

3

ボリュームキーを自分を処理しないでください - それはほとんど私がmpossible to guaranteeことをあなたはボリュームキーの動作を中断されませんです。

コールこのAPIあなたonCreate():

setVolumeControlStream(AudioManager.STREAM_MUSIC); 

にこれはあなたのapplication has focus、ボリュームキーは音楽の音量を調整する必要があるときというAudioManagerを伝えます。

関連する問題