zoukankan      html  css  js  c++  java
  • AudioManager

    AudioManager类位于android.Media 包中,该类提供访问控制音量和钤声模式的操作。

    通过getSystemService(Context.AUDIO_SERVICE)方法获得AudioManager实例对象。

    AudioManager audiomanage = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);

    audiomanager就是我们定义的控制系统声音的对象。


    里只讲述几个比较常用到的方法:

    adjustVolume(int direction, int flags) ——用来控制手机音量大小,当传入的第一个参数为 AudioManager.ADJUST_LOWER 时,可将音量调小一个单位,传入AudioManager.ADJUST_RAISE 时,则可以将音量调大一个单位。

    adjustStreamVolume(int streamType, int direction, int flags)——(以步长)调节手机音量大小
    参数1:声音类型,可取为STREAM_VOICE_CALL(通话)、STREAM_SYSTEM(系统声音)、STREAM_RING(铃声)、STREAM_MUSIC(音乐)、STREAM_ALARM(闹铃声)
    参数2:调整音量的方向,可取ADJUST_LOWER(降低)、ADJUST_RAISE(升高)、ADJUST_SAME
    参数3:可选的标志位

    setStreamVolume(int streamType, int index, int flags)——直接设置音量大小


    getMode() ——返回当前音频模式,如 NORMAL(普通), RINGTONE(铃声), or IN_CALL(通话)

    setMode()——设置声音模式,可取值NORMAL(普通), RINGTONE(铃声), or IN_CALL(通话)

    getRingerMode() ——返回当前的铃声模式。如RINGER_MODE_NORMAL(普通)、RINGER_MODE_SILENT(静音)、RINGER_MODE_VIBRATE(震动)

    setRingerMode(int ringerMode) ——改变铃声模式

    getStreamVolume(int streamType) ——取得当前手机的音量,最大值为7,最小值为0,当为0时,手机自动将模式调整为“震动模式”。

    getStreamMaxVolume(int streamType)——获得当前手机最大铃声。

    setStreamMute(int streamType, boolean state

    //音量控制,初始化定义

    AudioManager mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
    //最大音量
    int maxVolume = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
    //当前音量
    int currentVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);



    直接控制音量的多少:

    1

    2
    3
    4
    5
    if(isSilent){
      mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 0, 0);
    }else{
      mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, tempVolume, 0); //tempVolume:音量绝对值
    }

    以一步步长控制音量的增减,并弹出系统默认音量控制条:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    //降低音量,调出系统音量控制
    if(flag == 0){
      mAudioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,AudioManager.ADJUST_LOWER,
                                AudioManager.FX_FOCUS_NAVIGATION_UP);
    }
    //增加音量,调出系统音量控制
    else if(flag == 1){
      mAudioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,AudioManager.ADJUST_RAISE,
                                AudioManager.FX_FOCUS_NAVIGATION_UP);
    }



    常用方法:
    android audioManager获取音量:

    先获取AudioManager实例,
    AudioManager mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);

    //通话音量

    int max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_VOICE_CALL ); 

    int current = mAudioManager.getStreamVolume( AudioManager.STREAM_VOICE_CALL ); 

    //系统音量

    int max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_SYSTEM ); 

    current = mAudioManager.getStreamVolume( AudioManager.STREAM_SYSTEM ); 

    //铃声音量

    max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_RING ); 

    current = mAudioManager.getStreamVolume( AudioManager.STREAM_RING ); 

    //音乐音量

    max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_MUSIC ); 

    current = mAudioManager.getStreamVolume( AudioManager.STREAM_MUSIC ); 

    //提示声音音量

    max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_ALARM ); 

    current = mAudioManager.getStreamVolume( AudioManager.STREAM_ALARM );

    【转载】http://www.cnblogs.com/j-turn/archive/2012/09/18/2690534.html

  • 相关阅读:
    CSP内容安全策略总结及如何抵御 XSS 攻击
    CORS跨域资源共享总结
    web安全总结
    小知识随手记(八)
    内存泄漏问题总结
    Vue中插槽slot的使用
    Git常用命令、及常见报错处理:You have not concluded your merge (MERGE_HEAD exists)、清理无效的远程追踪分支
    render函数、createElement函数与vm.$slots
    Redis集群(二):Redis的安装
    Shell命令_文件系统常用命令df、du
  • 原文地址:https://www.cnblogs.com/jidan/p/3432730.html
Copyright © 2011-2022 走看看