2013-06-26 34 views
0

我想創建一個控制DTMF音量的Seek Bar(例如0到100)。我搜查了很多,但找不到任何東西。我這樣做,但它不工作..如何以編程方式控制DTMF音量android

int seekbarValue=seekBar.getProgress(); 
AudioManager audioManager=(AudioManager) getSystemService(Context.AUDIO_SERVICE); 
audioManager.setStreamVolume(AudioManager.STREAM_DTMF, seekbarValue, 0); 

請任何人告訴我一個解決方案來控制DTMF量。

+0

嗨,你有解決這個問題的辦法嗎? – Dinash

+0

@Dinash No ...我搜索了很多,但無法正確回答:( –

+0

好吧。感謝您的回覆。任何解決方法您都可以處理此問題? – Dinash

回答

1

沒有(AudioManager.STREAM_*)卷轉到100(int)。

setStreamVolume(...)的有效流量介於0和getStreamMaxVolume(int streamType)之間。

每個流可以有不同的最大音量int,比如我記得的8,10或16。在不同的設備上甚至可能會有所不同。

我希望這足以讓您和未來的訪客指向正確的方向。

1

我想給@Anonsage的答案增加一些信息。

正如@Anonsage提到的,每個流具有不同的最大音量。根據Kitkat 4.4.2實施,這些是最大值。

  1. STREAM.DTMF:15
  2. STREAM.MUSIC:15
  3. STREAM.VOICECALL:5
  4. STREAM.RINGTONE:7

如果你真的進入較低水平,查看AudioService.javaAOSP代碼,有一個縮放操作,可幫助顯示類似的UI並更新流的實際值。

相關問題