Android中可以通过程序获取系统手机的铃声和音量。同样,也可以设置铃声和音量。android中给出了AudioManager类来实现音量获取、音量控制。

本篇基于 Android API 中的 AudioManager 作讲述,最后给出实例。

下面是本篇大纲:

  • 1、认识 AudioManager
  • 2、AudioManager 主要方法介绍
  • 3、参数解释

1、认识 AudioManager

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

2、AudioManager 主要方法介绍

邮于 AudioManager 该类方法过多,这里只讲述几个比较常用到的方法:

  • 方法:adjustStreamVolume(int streamType, int direction, int flags)
    streamType为铃声类型,例如:AudioManager.STREAM_VOICE_CALL、AudioManager.STREAM_SYSTEM等,direction当传入的第一个参数为 AudioManager.ADJUST_LOWER 时,可将音量调小一个单位,传入 AudioManager.ADJUST_RAISE 时,则可以将音量调大一个单位。flags为标志位。
  • 方法:getMode()
    解释:返回当前音频模式。例如:MODE_NORMALMODE_RINGTONEMODE_IN_CALL or MODE_IN_COMMUNICATION
  • 方法:getRingerMode()
    解释:返回当前的铃声模式。例如 RINGER_MODE_NORMALRINGER_MODE_SILENT, or RINGER_MODE_VIBRATE.
  • 方法:getStreamVolume(int streamType)
    解释:取得当前手机的音量,最大值为7,最小值为0,当为0时,手机自动将模式调整为“震动模式”。
  • 方法:setStreamVolume(int streamType, int index, int flags)
    解释:改变铃声音量,解释同1,index为声音大小。
  • 方法:setMode(int mode)
    解释:改变音频模式。见get方法
  • 方法:setRingerMode(int ringerMode)
    解释:改变铃声模式。见get方法

3、参数解释

       streamType常用:    

  1. STREAM_ALARM 警报
  2. STREAM_MUSIC 音乐回放即媒体音量
  3. STREAM_NOTIFICATION 窗口顶部状态栏Notification,
  4. STREAM_RING 铃声
  5. STREAM_SYSTEM 系统
  6. STREAM_VOICE_CALL 通话
  7. STREAM_DTMF 双音多频,拨号键的声音

direction,是调整的方向,增加或减少,可以是: 

  1. ADJUST_LOWER 降低音量
  2. ADJUST_RAISE 升高音量
  3. ADJUST_SAME 保持不变,这个主要用于向用户展示当前的音量
flags,是附加参数:
  1. FLAG_PLAY_SOUND 调整音量时播放声音
  2. FLAG_SHOW_UI 调整时显示音量条,就是按音量键出现的界面
  3. FLAG_REMOVE_SOUND_AND_VIBRATE 无振动无声音
  4. FLAG_ALLOW_RINGER_MODES Whether to include ringer modes as possible options when changing volume.
  5. FLAG_VIBRATE Whether to vibrate if going into the vibrate ringer mode

***********************************************************************

* 转载务必在明显处注明:http://blog.csdn.net/xyz_lmn    *

* 作者:张兴业                                                                                           *

* 邮箱:xy-zhang@163.com                                                                   *

***********************************************************************

android调节音量——AudioManager的应用的更多相关文章

  1. android调节声音大小

    android调节声音大小 1.背景音乐的一些知识 网上好多关于背景音乐添加用到的类: MediaPlayer,SoundPool,AudioManager的资料,可是有时候解决不了我们在开发中遇到的 ...

  2. android 滑动滚动条调节音量

    利用滚动条滑动控制音量: 定义: private SeekBar mseekBarvolume: 以下实现代码: //调节音量--begin------------------------- //音量 ...

  3. android开发之GestureDetector手势识别(调节音量、亮度、快进和后退)

    写UI布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:andro ...

  4. Android原生音量控制【转】

    本文转载自:http://blog.csdn.net/u013082948/article/details/65630085 本文主要涉及AudioService.还是基于5.1.1版本的代码. Au ...

  5. 【VC++技术杂谈001】音频技术之调节音量及设置静音

    本文主要介绍如何使用混音器Mixer API函数实现系统音量调节,以及设置静音. 1.混音器的作用及结构 1.1混音器的作用 声卡(音频卡)是计算机进行声音处理的适配器,具有三个基本功能: (1)音乐 ...

  6. kali linux 使用笔记本快捷键调节音量

    环境:kali 2018.3a(xface桌面版),自带PulseAudio控制音量. 以前在windows时笔记本是Fn+F1这些来调节音量的,装了kali后原来调节亮度.触控板的键还能用,唯独音量 ...

  7. i3wm 调节音量

    i3wm,设置调节音量的快捷键 configure file: ~/.config/i3/config add # for sound control bindsym XF86AudioRaiseVo ...

  8. 〖Linux〗Ubuntu13.10,声音图标调节音量失效的解决办法

    升级Ubuntu13.10,发现声音图标不能调节音量[XUbuntu13.10发行日志]: 临时解决办法: gvim /usr/share/dbus-1/services/indicator-soun ...

  9. OBS插件学习入门:一个非常简单的、调节音量的filter

    一个非常简单的.调节音量的filter,非线性调节: #include <obs-module.h> #include <math.h> struct volume_data ...

随机推荐

  1. Syntax error: Bad for loop variable解决办法

    从 ubuntu 6.10 开始,ubuntu 就将先前默认的bash shell 更换成了dash shell:其表现为 /bin/sh 链接倒了/bin/dash而不是传统的/bin/bash. ...

  2. consumer的DubboResponseTimeoutScanTimer线程

    考虑这样一种情况,由于网络延时,consumer先抛出超时异常,一段时间后又收到了已经超时的响应,dubbo是怎么处理的? 拆分为3步看: 1. consumer的DubboResponseTimeo ...

  3. 提高C++程序运行效率的10个简单方法

    转载: 一.尽量减少值传递,多用引用来传递参数.至于其中的原因,相信大家也很清楚,如果参数是int等语言自定义的类型可能能性能的影响还不是很大,但是如果参数是一个类的对象,那么其效率问题就不言而喻了. ...

  4. JFace下ApplicationWindow关闭窗口时结束进程

    /** * Configure the shell. * @param newShell */ @Override protected void configureShell(Shell newShe ...

  5. Snagit安装步骤

    Snagit安装步骤 1解压文件 2运行文件下一步下一步 3拷贝汉化文件到安装目录 安装目录  D:\home\user\TechSmith\snagit 成功

  6. 蓝桥杯—ALGO-12 幂方分解(递归递推)

    问题描述 任何一个正整数都可以用2的幂次方表示.例如: 137=27+23+20 同时约定方次用括号来表示,即ab 可表示为a(b). 由此可知,137可表示为: 2(7)+2(3)+2(0) 进一步 ...

  7. PHP:第三章——数组中的array_values

    例: <?php header("Content-Type:text/html;charset=utf-8"); //array_value(); //功能:返回数组中所有的 ...

  8. CAS-认证流程

    从结构上看cas包括两个部分,CAS server 和CAS client 需要独立部署,主要负责用户的认证工作,CAS负责处理对客户端受保护资源的访问请求,需要登录时,重新定向到CAS Server ...

  9. C++字符串函数之append()、insert()

    仅记录自己比较容易忘的几个: B.insert(1,A,2,2) 将A中的从第3个字符开始的2个字符插入到B的第1个字符后面(字符串A和B实际上分别是const char [5]和const char ...

  10. MyEclipse WebSphere开发教程:安装和更新WebSphere 6.1, JAX-WS, EJB 3.0(六)

    [周年庆]MyEclipse个人授权 折扣低至冰点!立即开抢>> [MyEclipse最新版下载] MyEclipse支持Java EE技术(如JAX-WS和EJB 3.0),它们以功能包 ...