如何以编程方式控制DTMF卷android

时间:2013-06-26 12:46:36

标签: android media dtmf android-audiomanager

我想创建一个控制DTMF音量的搜索栏(例如0到100)。我经常搜索但找不到任何东西。我这样做但它不起作用..

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

请任何人告诉我控制DTMF音量的解决方案。

2 个答案:

答案 0 :(得分:1)

没有(AudioManager.STREAM_*)卷转到100(int)。

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

每个流可以具有不同的最大体积int,例如我记忆中的8,10或16。在不同的设备上甚至可能会有所不同。

我希望这足以让你和未来的访客指向正确的方向。

答案 1 :(得分:1)

我想在@Anonsage的答案中添加更多信息。

正如@Anonsage所提到的,每个流都有不同的最大音量。根据Kitkat 4.4.2实现,这些是最大值。

  1. STREAM.DTMF:15
  2. STREAM.MUSIC:15
  3. STREAM.VOICECALL:5
  4. STREAM.RINGTONE:7
  5. 如果您真的进入较低级别并查看 AOSP 代码的 AudioService.java ,则会有一个重新缩放操作,有助于显示类似的用户界面并更新流的实际值。