转自网络,自己整合整理。非利益驱使,写于新浪只为便于自己查阅相关资料。感谢各位贡献者!

 

手机都有声音模式,声音、静音还有震动,甚至震动加声音兼备,这些都是手机的基本功能。在Android手机中,我们同样可以通过AndroidSDK提供的声音管理接口来管理手机声音模式以及调整声音大小,这就是AndroidAudioManager的使用。

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

 

以下分别是AudioManager设置声音模式和调整声音大小的方法。

 

 

如何获取声音管理器:

AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);

 

里面主要的方法:

A、设置声音模式

//声音模式 
AudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
//
静音模式 
AudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
//
震动模式 
AudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);

 

B、调整声音大小

//减少声音音量 
AudioManager.adjustVolume(AudioManager.ADJUST_LOWER,  0);
//
调大声音音量 
AudioManager.adjustVolume(AudioManager.ADJUST_RAISE, 0)

(当传入的第一个参数为 AudioManager.ADJUST_LOWER 时,可将音量调小一个单位,传入AudioManager.ADJUST_RAISE 时,则可以将音量调大一个单位。)

 

getMode()获取音频模式

getRingerMode()获取铃声震动模式

 AudioManager

 

public void setStreamMute (int streamType, boolean state)

 

静音或不静音音频流。

静音命令被保护以免客户端进程死亡:若具有流上的活动静音请求的进程死亡,这个流会自动取消静音。

对于给定的流,静音请求是累计的:AudioManager会从一个或多个客户端接收数个静音请求,只有当接收到相同数目的取消静音请求时流才会取消静音。

为了更好的用户体验,应该程序必须在onPause()中取消已静音流,若合适在onResume()中再次静音

 

这个方法只能用于代替音频设置的平台范围管理应用程序或主要电话应用程序。

 

     参数

streamType                 欲静音/取消静音的流。

state                           请求静音状态:若为true,静音;若为false,取消静音。

 

----------------------------------------------------------------

这里如果使用了和手机震动有关的模式,记得添加权限。android.permission.VIBRATE哦!

arrow
arrow
    全站熱搜

    戮克 發表在 痞客邦 留言(0) 人氣()