Android 系统各种音量的获取及音量的上调与下调

总结一下系统各种音量的获取方法,可直接调用。

一、监听手机音量键,改变系统媒体音量
在activity页面重写onKeyDown方法,监听手机音量加、减键,上调或减少媒体音量,或者其他音量

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        switch (keyCode){
            case KeyEvent.KEYCODE_VOLUME_UP:
            {
                audioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_RAISE, AudioManager.FLAG_PLAY_SOUND | AudioManager.FLAG_SHOW_UI);
                break;
            }
            case KeyEvent.KEYCODE_VOLUME_DOWN:
            {
                audioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_LOWER, AudioManager.FLAG_PLAY_SOUND | AudioManager.FLAG_SHOW_UI);
                break;
            }
            default:
                break;
        }
        
        return true;
    }

二、获取系统各种声音值

    /**
     * 获取系统各种声音最大值
     * @param type 通话音量值=AudioManager.STREAM_VOICE_CALL
     *             系统音量值=AudioManager.STREAM_SYSTEM
     *             系统铃声值=AudioManager.STREAM_RING
     *             音乐音量值=AudioManager.STREAM_MUSIC
     *             闹铃音量值=AudioManager.STREAM_ALARM
     *             提示声音音量值=AudioManager.STREAM_NOTIFICATION
     * **/
    public static int getStreamMaxVolume(Activity activity, int type) {
        AudioManager am = (AudioManager) activity.getSystemService(Context.AUDIO_SERVICE);
        return am.getStreamVolume(type);
    }
    /**
     * 获取系统各种声音当前值
     * **/
    public static int getStreamVolume(Activity activity, int type) {
        AudioManager am = (AudioManager) activity.getSystemService(Context.AUDIO_SERVICE);
        return am.getStreamVolume(type);
    }
    /**
     * 设置系统各种声音
     * @param activity
     * @param streamType 通话音量值=AudioManager.STREAM_VOICE_CALL
     *                   系统音量值=AudioManager.STREAM_SYSTEM
     *                   系统铃声值=AudioManager.STREAM_RING
     *                   音乐音量值=AudioManager.STREAM_MUSIC
     *                   闹铃音量值=AudioManager.STREAM_ALARM
     *                   提示声音音量值=AudioManager.STREAM_NOTIFICATION
     * @param index 设置音量的大小
     * @param flags 标志位,不太清楚做什么的
     * **/
    public static void setStreamVolume(Activity activity, int streamType, int index, int flags) {
        AudioManager am = (AudioManager) activity.getSystemService(Context.AUDIO_SERVICE);
        am.setStreamVolume(streamType, index, flags);
    }

你可能感兴趣的:(Android)