Android开发之AudioManager(音频管理器)详解

AudioManager简介:



AudioManager类提供了访问音量和振铃器mode控制。使用Context.getSystemService(Context.AUDIO_SERVICE)来得到这个类的一个实例。

公有方法:



Public Methods


int


abandonAudioFocus(AudioManager.OnAudioFocusChangeListenerl)

放弃音频的焦点。


void


adjustStreamVolume(int
streamType, int direction, int flags)

调整手机指定类型的声音。


void


adjustSuggestedStreamVolume(int,int
suggestedStreamType intflags)

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


void


adjustVolume(int,intflags)

调整最相关的数据流的音量。


int


getMode()

返回当前音频模式。


String


getParameters(String
keys)

给音频硬件设置一个varaible数量的参数值


int


getRingerMode()

返回当前的铃声模式。


int


getRouting(int
mode)

这个方法是不赞成的。不直接查询音频路由,使用isSpeakerphoneOn(), isBluetoothA2dpOn isBluetoothScoOn(),()和isWiredHeadsetOn()方法。


int


getStreamMaxVolume(int
streamType)

返回特定流的最大音量指数。


int


getStreamVolume(int
streamType)

返回特定数据流的当前音量索引。


int


getVibrateSetting(int
vibrateType)

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


boolean


isBluetoothA2dpOn()

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


boolean


isBluetoothScoAvailableOffCall()

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


boolean


isBluetoothScoOn()

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


boolean


isMicrophoneMute()

检查是否打开或关闭麦克风静音。


boolean


isMusicActive()

检查是否有音乐处于活跃状态。


boolean


isSpeakerphoneOn()

检查是否打开或关闭扬声器。


boolean


isWiredHeadsetOn()

检查是否插入耳机


void


loadSoundEffects()

加载声音效果。


void


playSoundEffect((int
effectType, float volume)

播放声音效果(按键点击,盖开启/关闭...)


void


playSoundEffect(int
effectType)

播放声音效果(按键点击,盖开启/关闭...)


void


registerMediaButtonEventReceiver(ComponentName
eventReceiver)

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


int


requestAudioFocus(AudioManager.OnAudioFocusChangeListener
l,int streamType,int durationHint)

请求音频的焦点。


void


setBluetoothA2dpOn(booleanon)

这个方法是不赞成的。不要使用。


void


setBluetoothScoOn(booleanon)

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


void


setMicrophoneMute(booleanon)

设置是否让麦克风静音。


void


setMode(int mode)

设置声音模式。


void


setParameters(String
keyValuePairs)

设置一个音频硬件数量可变的参数值。


void


setRingerMode(int
ringerMode)

设置手机电话铃声的模式。


void


setRouting(int
mode, int routes, int mask)

这个方法是不赞成的。不设置音频路由直接使用setSpeakerphoneOn(), setBluetoothScoOn()方法。


void


setSpeakerphoneOn(boolean
on)

设置扬声器打开或关闭。


void


setStreamMute(int
streamType,booleanstate)

将手机的指定类型的声音调整为静音。


void


setStreamSolo(int
streamType,boolean state)

独奏或来取消特定流。


void


setStreamVolume
(int streamType, int index, int flags)

直接设置手机的指定类型的音量值。


void


setVibrateSetting
(int vibrateType, int vibrateSetting)

设置设置时应该振动的振动类型。


void


setWiredHeadsetOn(boolean
on)

这个方法是不赞成的。不要使用。


boolean


shouldVibrate(int
vibrateType)

返回特定类型是否应该根据用户震动设置和当前的振铃器 mode。


void


startBluetoothSco()

启动蓝牙SCO音频连接。


void


stopBluetoothSco()

停止蓝牙SCO音频连接。


void


unloadSoundEffects()

卸载音效。


void


unregisterMediaButtonEventReceiver(ComponentName
eventReceiver)

注销MEDIA_BUTTON意图的接收机。

常用方法说明:



void  adjustStreamVolume(int
streamType,int direction, int flags)

调整手机指定类型的声音。其中第一个参数streamType指定声音类型,该参数可接受如下几个值。

l  int    STREAM_ALARM:手机闹铃的声音。

l  int    STREAM_DTMF:DTMF音调的声音。

l  int    STREAM_MUSIC:手机音乐的声音。

l  int    STREAM_NOTIFICATION:系统提示的声音。

l  int    STREAM_RING         The:电话铃声的声音。

l  int    STREAM_SYSTEM:手机系统的声音。

l  int    STREAM_VOICE_CALL:语音电话的声音。

第二个参数指定对声音进行增大、还是减小该参数可接受如下几个值:

ADJUST_LOWER 降低音量

ADJUST_RAISE 升高音量

ADJUST_SAME 保持不变,这个主要用于向用户展示当前的音量

第三个参数是调整声音时的标志,例如指定FLAG_SHOW_UI,则指定调整声音时显示音量进度条。

void setMicrophoneMute(booleanon)

设置是否让麦克风静音。设置为true将麦克风静音;false关闭静音

void  setMode(intmode)

设置声音模式。可设置的值有 NORMAL,RINGTONE, 和IN_CALL。

void setRingerMode(intringerMode)

设置手机电话铃声的模式。可支持如下几个属性值。

l  int    RINGER_MODE_NORMAL:正常的手机铃声。

l  int    RINGER_MODE_SILENT:手机铃声静音。

l  int    RINGER_MODE_VIBRATE:手机震动。

void setSpeakerphoneOn(booleanon)

设置扬声器打开或关闭。设置为true开启免提通话;false关闭免提。

void setStreamMute(intstreamType,booleanstate)

将手机的指定类型的声音调整为静音。其中streamType参数与adjustStreamVolume方法中第一个参数的意义相同。

void setStreamVolume
(int streamType, int index, int flags)

直接设置手机的指定类型的音量值。其中streamType参数与adjustStreamVolume方法中第一个参数的意义相同。

Android开发之AudioManager(音频管理器)详解,布布扣,bubuko.com

时间: 07-26

Android开发之AudioManager(音频管理器)详解的相关文章

【转】Android开发之Bitmap的内存优化详解

本文来源:转载自: http://mobile.51cto.com/abased-410796.htm 在Android应用里,最耗费内存的就是图片资源.而且在Android系统中,读取位图Bitmap时,分给虚拟机中的图片的堆栈大小只有8M,如果超出了,就会出现OutOfMemory异常.所以,对于图片的内存优化,是Android应用开发中比较重要的内容. 1.要及时回收Bitmap的内存 Bitmap类有一个方法recycle(),从方法名可以看出意思是回收.这里就有疑问了,Android系

Python全栈开发之8、装饰器详解

一文让你彻底明白Python装饰器原理,从此面试工作再也不怕了. 一.装饰器 装饰器可以使函数执行前和执行后分别执行其他的附加功能,这种在代码运行期间动态增加功能的方式,称之为“装饰器”(Decorator),装饰器的功能非常强大,但是理解起来有些困难,因此我尽量用最简单的例子一步步的说明这个原理. 1.不带参数的装饰器 假设我定义了一个函数f,想要在不改变原来函数定义的情况下,在函数运行前打印出start,函数运行后打印出end,要实现这样一个功能该怎么实现?看下面如何用一个简单的装饰器来实现

android开发之wheel控件使用详解

出门在外生不起病呀,随便两盒药60多块钱.好吧,不废话了,今天我们来看看wheel控件的使用,这是GitHub上的一个开源控件,用起来十分方便,我们可以用它做许多事情,比如做一个自定义的datepicker,在一些电商App中,经常用它来做省市县三级联动,总之用途还是挺多的,我们今天就一起来看看怎么使用这个东东. 我们先来看看今天要做的一个效果图: 这是我们今天要做的效果图.下面就开始吧. 1.获得wheel wheel是GitHub上的一个开源控件,我们可以直接在GitHub上下载,地址htt

Android基础入门教程——10.3 AudioManager(音频管理器)

在多媒体的第一节,我们用SoundPool写了个Duang的示例,小猪点击一个按钮后,突然发出”Duang”的 一声,而且当时的声音很大,吓死宝宝了,好在不是上班时间,上班时间偷偷写博客给经理知道 会作死的~嗯,好的,说到这个声音大小就得介绍下Android为我们提供的(音量大小控制)的API: AudioManager(音频管理器)了,该类位于Android.Media包下,提供了音量控制与铃声模式相关操作!... www.mafengwo.cn/i/4012346.htmlwww.mafen

rpm程序包管理器详解

1. 程序包管理器的功能 我们知道,由程序员编写并提供的程序源代码要转换成目标二进制格式才能在计算机上运行起来,但用户要在平台上使用时需要手动编译安装后才能使用,对于普通用户来说有一定难度.因此为了降低普通用户对应用程序的使用难度,程序员可在提供源代码的同时提供已在特定环境下编译好的程序文件,只要用户的平台环境和程序员的平台环境相同,就可以通过解压程序员提供的二进制格式文件即可使用,而无需自己手动编译安装. 一个已编译好的程序由二进制程序.库文件.配置文件和帮助手册等组成,而程序包管理器的功能就

android开发之MediaPlayer+Service MP3播放器

http://blog.csdn.net/zzy916853616/article/details/6450753 [java] view plaincopy import java.io.File; import java.io.FilenameFilter; import java.util.ArrayList; import java.util.List; import android.app.ListActivity; import android.apps.service.Player

Android开发之SoundPool使用详解

使用SoundPool播放音效 如果应用程序经常播放密集.急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了.因为MediaPlayer存在如下缺点: 1)         延时时间较长,且资源占用率高. 2)         不支持多个音频同时播放. Android中除了MediaPlayer播放音频之外还提供了SoundPool来播放音效,SoundPool使用音效池的概念来管理多个短促的音效,例如它可以开始就加载20个音效,以后在程序中按音效的ID进行播放.

Android开发之SQLite数据库详解

Android开发之SQLite数据库详解 请尊重他人的劳动成果,转载请注明出处:Android开发之SQLite数据库详解 http://blog.csdn.net/fengyuzhengfan/article/details/40194393 Android系统集成了一个轻量级的数据库:SQLite, SQLite并不想成为像Oracle.MySQL那样的专业数据库.SQLite只是一个嵌入式的数据库引擎,专门适用于资源有限的设备上(如手机.PDA等)适量数据存取. 虽然SQLite支持绝大

Android开发之WebView详解

概述: 一个显示网页的视图.这个类是你可以滚动自己的Web浏览器或在你的Activity中简单地显示一些在线内容的基础.它使用了WebKit渲染引擎来显示网页,包括向前和向后导航的方法(通过历史记录),放大和缩小,执行文本搜索等. 需要注意的是:为了让你的应用能够使用WebView访问互联网和加载网页,你必须添加Internet的权限在Android Manifest文件中: <uses-permission android:name="android.permission.INTERNE