1

我用这个代码来调整音量,但它没有用

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

1 回答 1

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);
于 2011-05-11T12:57:39.837 回答