我想改变ringertonevolume的音量

时间:2011-05-11 12:31:08

标签: android android-audiomanager

我使用此代码来调整音量,但它不起作用

int volume=23;
audio.setStreamVolume(AudioManager.STREAM_RING,volume, AudioManager.FLAG_PLAY_SOUND|AudioManager.FLAG_ALLOW_RINGER_MODES);}

1 个答案:

答案 0 :(得分:9)

你不应该只将音量设置为23,而应首先调用getStreamMaxVolume(StreamType)以获得StreamType的最大音量,在这种情况下是音频的音量。

例如,要将振铃器的音量设置为最大值,请执行此操作!

audioManager.setStreamVolume(AudioManager.STREAM_RING, audioManager.getStreamMaxVolume(AudioManager.STREAM_RING), FLAG_ALLOW_RINGER_MODES|FLAG_PLAY_SOUND);

更新

    int streamMaxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_RING);
    Toast.makeText(this, Integer.toString(streamMaxVolume), Toast.LENGTH_LONG).show(); //I got 7
    audioManager.setStreamVolume(AudioManager.STREAM_RING, streamMaxVolume, AudioManager.FLAG_ALLOW_RINGER_MODES|AudioManager.FLAG_PLAY_SOUND);

确定。既然我在家,我可以试用代码。在这里你可以看到,streamMaxVolume给我一个7的整数,如果你试图将它设置为23太多。所以在我的情况下你可以在setStreamVolume中使用的可能值是

0,1,2,3,4,5,6,7 最低< ----->最高

//set to lowest ->
audioManager.setStreamVolume(AudioManager.STREAM_RING, 0, AudioManager.FLAG_ALLOW_RINGER_MODES|AudioManager.FLAG_PLAY_SOUND);

//set to loudest ->
audioManager.setStreamVolume(AudioManager.STREAM_RING, 7, AudioManager.FLAG_ALLOW_RINGER_MODES|AudioManager.FLAG_PLAY_SOUND);