1. 获取 AudioManager 实例:
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
2. 获取和设置音量:
// 获取当前音量
int currentVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
// 获取最大音量
int maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
// 设置音量(设置音量级别为 50%)
int newVolume = maxVolume / 2;
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, newVolume, 0);
在上述代码中,STREAM_MUSIC 表示音乐流,你也可以选择其他流,如 STREAM_RING、STREAM_ALARM 等。
3. 获取和设置铃声模式:
// 获取当前铃声模式
int ringerMode = audioManager.getRingerMode();
// 设置铃声模式(设置为静音模式)
audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
getRingerMode 返回当前设备的铃声模式,而 setRingerMode 可以用于设置铃声模式。铃声模式包括 RINGER_MODE_NORMAL(正常模式)、RINGER_MODE_VIBRATE(振动模式)和 RINGER_MODE_SILENT(静音模式)。
4. 获取和设置振动模式:
// 获取当前振动模式
boolean isVibrate = audioManager.getVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER) == AudioManager.VIBRATE_SETTING_ON;
// 设置振动模式(设置为振动)
audioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_ON);
getVibrateSetting 用于获取振动模式,而 setVibrateSetting 可以用于设置振动模式。振动模式有 AudioManager.VIBRATE_SETTING_ON(开启)、AudioManager.VIBRATE_SETTING_OFF(关闭)等选项。
5. 处理音频焦点:
AudioManager.OnAudioFocusChangeListener audioFocusChangeListener = new AudioManager.OnAudioFocusChangeListener() {
@Override
public void onAudioFocusChange(int focusChange) {
// 处理音频焦点变化
}
};
int result = audioManager.requestAudioFocus(audioFocusChangeListener, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);
requestAudioFocus 用于请求音频焦点,可以指定音频焦点的类型(如 STREAM_MUSIC)以及请求焦点的结果。在获得焦点后,可以进行相应的音频操作,如播放音乐。在不需要焦点时,记得调用 abandonAudioFocus 释放焦点。
确保在使用 AudioManager 时,在 AndroidManifest.xml 文件中添加必要的权限,例如:
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
以上是一些基本的用法,根据具体需求,还可以进行更详细的音频管理。
转载请注明出处:http://www.zyzy.cn/article/detail/15244/Android