1.简介

Android为我们提供的(音量大小控制)的API: AudioManager(音频管理器)了,该类位于Android.Media包下,提供了音量控制与铃声模式相关操作。 




2.获得AudioManager对象实例

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




3.相关方法详解


3.1.

方法:adjustVolume(int direction, int flags) 

作用:控制手机音量,调大或者调小一个单位,根据第一个参数进行判断 。

参数:AudioManager.ADJUST_LOWER,可调小一个单位; AudioManager.ADJUST_RAISE,可调大一个单位


3.2.

方法:adjustStreamVolume(int streamType, int direction, int flags): 

作用:同上,不过可以选择调节的声音类型 

参数1:streamType参数,指定声音类型,有下述几种声音类型: 

STREAM_ALARM:手机闹铃 STREAM_MUSIC:手机音乐 

STREAM_RING:电话铃声 STREAM_SYSTEAM:手机系统 

STREAM_DTMF:音调 STREAM_NOTIFICATION:系统提示 

STREAM_VOICE_CALL:语音电话 

参数2:上面那个一样,调大或调小音量的。

参数3:可选的标志位,比如AudioManager.FLAG_SHOW_UI,显示进度条,AudioManager.PLAY_SOUND:播放声音。


3.3.

方法:setStreamVolume(int streamType, int index, intflags)

作用:直接设置音量大小。


3.4.

方法:getMode( )

作用:返回当前的音频模式。


3.5.

方法:setMode( )

作用:设置声音模式 。

返回值:有下述几种模式: 

MODE_NORMAL(普通), MODE_RINGTONE(铃声)

MODE_IN_CALL(打电话),MODE_IN_COMMUNICATION(通话)


3.6.

方法:getRingerMode( )

作用:返回当前的铃声模式。


3.7.

方法:setRingerMode(int streamType)

作用:设置铃声模式 。

返回值:有下述几种模式: 

如RINGER_MODE_NORMAL(普通)

RINGER_MODE_SILENT(静音)

RINGER_MODE_VIBRATE(震动)


3.8.

方法:getStreamVolume(int streamType)

作用:获得手机的当前音量,最大值为7,最小值为0,当设置为0的时候,会自动调整为震动模式


3.9.

方法:getStreamMaxVolume(int streamType)

作用:获得手机某个声音类型的最大音量值。


3.10.

方法:setStreamMute(int streamType,boolean state)

作用:将手机某个声音类型设置为静音。


3.11.

方法:setSpeakerphoneOn(boolean on)

作用:设置是否打开扩音器。


3.12.

方法:setMicrophoneMute(boolean on)

作用:设置是否让麦克风静音。


3.13.

方法:isMicrophoneMute()

作用:判断麦克风是否静音或是否打开。


3.14.

方法:isMusicActive()

作用:判断是否有音乐处于活跃状态。


3.15.

方法:isWiredHeadsetOn()

作用:判断是否插入了耳机。


3.16.

方法:abandonAudioFocus(AudioManager.OnAudioFocusChangeListenerl)

作用:放弃音频的焦点。


3.17.

方法:adjustSuggestedStreamVolume(int,int suggestedStreamType intflags)

作用:调整最相关的流的音量,或者给定的回退流。


3.18.

方法:getParameters(String keys)

作用:给音频硬件设置一个varaible数量的参数值。


3.19.

方法:getVibrateSetting(int vibrateType)

作用:返回是否该用户的振动设置为振动类型。


3.20.

方法:isBluetoothA2dpOn()

作用:检查是否A2DP蓝牙耳机音频路由是打开或关闭。


3.21.

方法:isBluetoothScoAvailableOffCall()

作用:显示当前平台是否支持使用SCO的关闭调用用例。


3.22.

方法:isBluetoothScoOn()

作用:检查通信是否使用蓝牙SCO。


3.23.

方法:loadSoundEffects()

作用:加载声音效果。


3.24.

方法:playSoundEffect((int effectType, float volume)

作用:播放声音效果。


3.25.

方法:egisterMediaButtonEventReceiver(ComponentName eventReceiver) 

作用:注册一个组件MEDIA_BUTTON意图的唯一接收机。


3.26.

方法:requestAudioFocus(AudioManager.OnAudioFocusChangeListener l,int streamType,int durationHint) 

作用:请求音频的焦点。


3.27.

方法:setBluetoothScoOn(boolean on)

作用:要求使用蓝牙SCO耳机进行通讯。

3.28.

方法:startBluetoothSco/stopBluetoothSco()

作用:启动/停止蓝牙SCO音频连接。


3.29.

方法:unloadSoundEffects()

作用:卸载音效。




4.代码实现Demo


4.1.获取实例




4.2.播放



4.3.停止



4.4.高音量



4.5.低音量



4.6.静音




附:AudioManager官方链接

http://androiddoc.qiniudn.com/reference/android/media/AudioManager.html

Android Manager之AudioManager(音频管理器)相关推荐

  1. Android 之 AudioManager ( 音频管理器 )

    本节引言: 在多媒体的第一节,我们用SoundPool写了个Duang的示例,小猪点击一个按钮后,突然发出"Duang"的 一声,而且当时的声音很大,吓死宝宝了 ,好在不是上班时间 ...

  2. AudioManager音频管理器

    AudioManger对象通过getSystemService(Service.AUDIO_SERVICE)获取 AudioManger常用的几个方法void Android.media.AudioM ...

  3. Android之AudioManager(音频管理器)详解

    AudioManager简介: AudioManager类提供了访问音量和振铃器mode控制.使用Context.getSystemService(Context.AUDIO_SERVICE)来得到这 ...

  4. Android音频管理器AudioManager用法

    当我们在听歌时,当我们在刷小视频时,当我们在看动漫.在看电影.在追剧时,不知道是否有人注意到,在这些软件中滑动屏幕或者拖动滑动条就可以直接控制音量,而不需要去按手机硬件上的音量键. 在某些时候,程序需 ...

  5. [翻译] SoundManager 音频管理器

    SoundManager 音频管理器 https://github.com/nicklockwood/SoundManager Purpose SoundManager is a simple cla ...

  6. unity全局总的音频管理器

    这篇博客介绍一个unity的总的音频管理器 可以有效避免音频错乱的问题 我们把它挂在场景中 可以使用跨场景保存的方法来实现场景跳转之后的存在 首先 这篇博客会用到我之前介绍的知识 我下面把链接先给大家 ...

  7. H5 微信小游戏 —— 音频管理器

    前言 原本使用的是 egret 的 egret.SoundChannel 和 egret.Sound 来管理音频,但不知为何在重复将游戏切换到前后台后,很容易出现背景音播放不全.播放重复和无法播放的问 ...

  8. Win11找不到realtek高清晰音频管理器怎么办?

    Win11找不到realtek高清晰音频管理器怎么解决?很多用户表示更新完Win11之后,找不到realtek高清晰音频管理器?这是怎么回事?下面小编给大家带来了有效的方法,希望可以帮助到大家. 方法 ...

  9. win7系统怎样打开音频服务器,win7系统打开音频管理器的具体教程

    win7系统使用久了,好多网友反馈说win7系统打开音频管理器的问题,非常不方便.有什么办法可以永久解决win7系统打开音频管理器的问题,面对win7系统打开音频管理器的图文步骤非常简单,只需要1.点 ...

  10. android sdk是灰的,Android Studio 2.3 sdk管理器标签灰显

    Android Studio 2.3 - >配置 - > SDK管理器. 这些选项卡呈灰色显示: SDK工具,SDK更新站点.此外,"Show Package Details&q ...

最新文章

  1. java常见对象_Java/10_Java常见对象.md at master · DuHouAn/Java · GitHub
  2. python安装mysqlclient报错_Centos 6 – sudo在为Python 3.4安装mysqlclient时...
  3. 广东计算机好的2a学校,广东专插本2A院校排名情况
  4. 开启Python自动化运维之路
  5. Shiro 登录、退出、校验是否登录涉及到的Session和Cookie
  6. 设计之路:如何进行软件需求分析?
  7. Gradle Introduction
  8. 电脑设置访问苹果服务器未响应,苹果连接电脑没反应,教您苹果连接电脑没反应怎么解决...
  9. appium自动化测试_Appium自动化测试入门教程No.1—— Appium介绍
  10. CAS:compare and swap
  11. 苹果证实将弃用Windows版QuickTime
  12. zabbix自定义用户key
  13. python遇到异常跳过_教你使用Python遇到的异常的处理方式!
  14. (转载)Fiddler 教程
  15. websockets_Websockets在数据工程中鲜为人知的模式
  16. 夏至 | 心怀热忱,认真生活 ;不负时光,不负自己
  17. access查询女教师所有的信息_大学计算机2(Access数据库基础)_章节测验,期末考试,慕课答案查询公众号...
  18. 解决IE浏览器jQuery执行ajax不响应问题
  19. Express中间件body-parser
  20. dataframe 设置空值_数据清洗--DataFrame中的空值处理方法

热门文章

  1. javascript中function前面的符号的意思!
  2. 金属塑性成形计算机模拟仿真,金属塑性成形计算机模拟的若干进展
  3. P5514 [MtOI2019]永夜的报应
  4. Unity3d版数字地球、谷歌地球(google earth)
  5. sigmaplot画辐射方向图教程
  6. 最近再看一遍《X战警》系列
  7. Android 常用框架大全
  8. asterisk cdr mysql_在asterisk中添加CDR sqlite支持
  9. 一种用于指导模拟 IC 布局的定制图神经网络模型
  10. 四级词汇——不择手段记单词new