AudioManager
参考Android 8.0
我们使用下面的代码来获取AudioManager。
AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
获取音量类型
我们获取到audioManager实例以后,就可以使用getStreamVolume()方法来获取到音量类型。音量类型有好多种,我们一般用到的如下:
//用于标识电话呼叫的音频流的音量;
public static final int STREAM_VOICE_CALL = AudioSystem.STREAM_VOICE_CALL;
//用于标识系统声音的音频流的音量;
public static final int STREAM_SYSTEM = AudioSystem.STREAM_SYSTEM;
//用于识别电话铃声的音频流的音量;
public static final int STREAM_RING = AudioSystem.STREAM_RING;
//用于标识音乐播放的音频流的音量;
public static final int STREAM_MUSIC = AudioSystem.STREAM_MUSIC;
//用于标识警报的音频流的音量;
public static final int STREAM_ALARM = AudioSystem.STREAM_ALARM;
以音乐播放的音量STREAM_MUSIC为例,下面是用法:
//获取音乐播放的当前音量;
int currentVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
//获取音乐播放的最大音量;
int maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
//获取音乐播放的最小音量;
int minVolume = audioManager.getStreamMinVolume(AudioManager.STREAM_MUSIC);
设置音量
使用setStreamVolume()方法来进行设置。setStreamVolume()的源码如下:
public void setStreamVolume(int streamType, int index, int flags) {
final IAudioService service = getService();
try {
service.setStreamVolume(streamType, index, flags, getContext().getOpPackageName());
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
}
该方法有三个参数,参数说明如下:
参数 | 说明 |
---|---|
int streamType | 需要调整的音量的类型 |
int index | 要设置的音量值 |
flags | 附加参数 |
1 . 参数streamType,主要使用的如下:
STREAM_ALARM 警报
STREAM_MUSIC 音乐回放即媒体音量
STREAM_NOTIFICATION 窗口顶部状态栏Notification,
STREAM_RING 铃声
STREAM_SYSTEM 系统
STREAM_VOICE_CALL 通话
STREAM_DTMF 双音多频
2 . 参数index:
类型是int值。
3 . 参数flags是附加参数,主要使用的如下:
FLAG_PLAY_SOUND:调整音量时播放声音;
FLAG_SHOW_UI:调整音量时显示音量条;
以设置音乐播放音量为例:
//设置音乐播放的音量;
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC,10,AudioManager.FLAG_PLAY_SOUND);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
----------------------last line for now------------------------