我使用此代码来调整音量,但它不起作用
int volume=23;
audio.setStreamVolume(AudioManager.STREAM_RING,volume, AudioManager.FLAG_PLAY_SOUND|AudioManager.FLAG_ALLOW_RINGER_MODES);}
答案 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);