123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- package com.telpo.faceHengDian.utile;
- import android.app.Service;
- import android.content.Context;
- import android.media.AudioManager;
- /**
- * 音量控制
- */
- public class VolumeUtil {
- private AudioManager mAudioManager;
- public VolumeUtil(Context context){
- mAudioManager = (AudioManager) context.getSystemService(Service.AUDIO_SERVICE);
- }
- //获取最大多媒体音量
- public int getMediaMaxVolume(){
- return mAudioManager.getStreamMaxVolume( AudioManager.STREAM_MUSIC );
- }
- //获取当前多媒体音量
- public int getMediaVolume(){
- return mAudioManager.getStreamVolume( AudioManager.STREAM_MUSIC );
- }
- //获取最大通话音量
- public int getCallMaxVolume(){
- return mAudioManager.getStreamMaxVolume( AudioManager.STREAM_VOICE_CALL );
- }
- //获取当前通话音量
- public int getCallVolume(){
- return mAudioManager.getStreamVolume( AudioManager.STREAM_VOICE_CALL );
- }
- //获取最大系统音量
- public int getSystemMaxVolume(){
- return mAudioManager.getStreamMaxVolume(AudioManager.STREAM_SYSTEM );
- }
- //获取当前系统音量
- public int getSystemVolume(){
- return mAudioManager.getStreamVolume(AudioManager.STREAM_SYSTEM );
- }
- //获取最大提示音量
- public int getAlermMaxVolume(){
- return mAudioManager.getStreamMaxVolume(AudioManager.STREAM_ALARM );
- }
- //获取当前提示音量
- public int getAlermVolume(){
- return mAudioManager.getStreamVolume(AudioManager.STREAM_ALARM );
- }
- // 设置多媒体音量
- /**
- * 第一个是streamType,streamType是需要调整音量的类型
- * 第二个direction,是音量调节的方向,可以取下面的几个值:
- * ADJUST_LOWER 降低音量
- * ADJUST_RAISE 升高音量
- * ADJUST_SAME 保持不变,使用这个值UI上会向用户展示当前的音量
- * 第三个flags,是附加参数,用于影响设置过程中的一些系统行为,两个常用的是:
- * FLAG_PLAY_SOUND 调整音量时播放声音
- * FLAG_SHOW_UI 调整时显示音量条,跟按按键调节音量时出现的音量条一致
- * 0 表示什么额外行为也没有,比如想自己绘制音量条时,可以使用这个值防止显示系统默认的音量条
- * @param volume
- */
- public void setMediaVolume(int volume){
- mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, //音量类型
- volume,
- AudioManager.FLAG_PLAY_SOUND|0);
- }
- //设置通话音量
- public void setCallVolume(int volume){
- mAudioManager.setStreamVolume( AudioManager.STREAM_VOICE_CALL,
- volume,
- AudioManager.FLAG_PLAY_SOUND
- | AudioManager.FLAG_SHOW_UI);
- }
- //设置提示音量
- public void setAlermVolume(int volume){
- mAudioManager.setStreamVolume( AudioManager.STREAM_ALARM,
- volume,AudioManager.FLAG_PLAY_SOUND
- |AudioManager.FLAG_SHOW_UI);
- }
- // 关闭/打开扬声器播放
- public void setSpeakerStatus(boolean on) {
- if (on) { //扬声器
- mAudioManager.setSpeakerphoneOn(true);
- mAudioManager.setMode(AudioManager.MODE_NORMAL);
- } else {
- // 设置最大音量
- int max = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL);
- mAudioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL, max, AudioManager.STREAM_VOICE_CALL);
- // 设置成听筒模式
- mAudioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
- mAudioManager.setSpeakerphoneOn(false);// 关闭扬声器
- mAudioManager.setRouting(AudioManager.MODE_NORMAL, AudioManager.ROUTE_EARPIECE, AudioManager.ROUTE_ALL);
- }
- }
- }
|