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. 等待进程结束wait,waitpid

    当子进程先于父进程退出时,如果父进程没有调用wait和waitpid函数,子进程就会进入僵死状态. pid_t wait(int *status); pid_t waitpid(pid_t pid, ...

  2. linux kernel swap daemon

    The name swap daemon is a bit of a misnomer as the daemon does more than just swap modified pages ou ...

  3. 通过url获取参数信息

    运行结果如下: <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <ti ...

  4. c++多态多实例

    #include <bits/stdc++.h> using namespace std; class A { public: A() { cout << "构造A& ...

  5. express学习-express搭建后台

    前言:本文是纯用node express做一个后端服务的教程,并不等同于express官网的入门教程,本文也并不涉及任何高级的Node服务端性能优化等知识. 本文是在已经看过express官方入门指南 ...

  6. 使用MyEclipse开发Java EE应用:EJB项目开发初探(下)

    你开学,我放价!MyEclipse线上狂欢继续!火热开启中>> [MyEclipse最新版下载] 三.EJB 3.x项目中的持久性支持 当创建EJB 3.x项目时,作为选项您可以添加JPA ...

  7. L212

    Just 33 minutes into the New Year, NASA's New Horizons probe made space exploration history, flying ...

  8. 理解 LSTM 网络

    递归神经网络 人类并不是每时每刻都从头开始思考.正如你阅读这篇文章的时候,你是在理解前面词语的基础上来理解每个词.你不会丢弃所有已知的信息而从头开始思考.你的思想具有持续性. 传统的神经网络不能做到这 ...

  9. webStrom 美化

    webStrom 激活: 注册时,在打开的License Activation窗口中选择“License server”,在输入框输入下面的网址: http://idea.iteblog.com/ke ...

  10. HDU 2181 哈密顿绕行世界问题(DFS)

    Problem Description 一个规则的实心十二面体,它的 20个顶点标出世界著名的20个城市,你从一个城市出发经过每个城市刚好一次后回到出发的城市. Input 前20行的第i行有3个数, ...