博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AudioManager的详细内容
阅读量:7016 次
发布时间:2019-06-28

本文共 2916 字,大约阅读时间需要 9 分钟。

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


通过getSystemService(Context.
AUDIO
_SERVICE)方法获得AudioManager实例对象。

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

audiomanager就是我们定义的控制系统声音的对象。


这里只讲述几个比较常用到的方法:


adjustVolume(int direction, int flags) ——用来控制手机音量大小,当传入的第一个参数为AudioManager.ADJUST_LOWER 时,可将音量调小一个单位,传入AudioManager.ADJUST_RAISE时,则可以将音量调大一个单位。


adjustStreamVolume(int streamType, int direction, intflags)——(以步长)调节手机音量大小

参数1:声音类型,可取为STREAM_VOICE_CALL(通话)、STREAM_SYSTEM(系统声音)、STREAM_RING(铃声)、STREAM_MUSIC(音乐)、STREAM_ALARM(闹铃声)

参数2:调整音量的方向,可取ADJUST_LOWER(降低)、ADJUST_RAISE(升高)、ADJUST_SAME

参数3:可选的标志位


setStreamVolume(int streamType, int index, intflags)——直接设置音量大小



getMode() ——返回当前音频模式,如 NORMAL(普通), RINGTONE(铃声), orIN_CALL(通话)


setMode()——设置声音模式,可取值NORMAL(普通), RINGTONE(铃声), or IN_CALL(通话)


getRingerMode()——返回当前的铃声模式。如RINGER_MODE_NORMAL(普通)、RINGER_MODE_SILENT(静音)、RINGER_MODE_VIBRATE(震动)


setRingerMode(int ringerMode) ——改变铃声模式


getStreamVolume(int streamType)——取得当前手机的音量,最大值为7,最小值为0,当为0时,手机自动将模式调整为“震动模式”。


getStreamMaxVolume(int streamType)——获得当前手机最大铃声。


setStreamMute(int streamType, boolean state


//音量控制,初始化定义
AudioManager mAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
//最大音量
int 
maxVolume =mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
//当前音量
int 
currentVolume =mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);


直接控制音量的多少:

1
2
3
4
5
if
(isSilent){
  
mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC,
0
, 
0
);
}
else
{
  
mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC,tempVolume, 
0
);
//tempVolume:音量绝对值
}

以一步步长控制音量的增减,并弹出系统默认音量控制条:

1
2
3
4
5
6
7
8
9
10
//降低音量,调出系统音量控制
if
(flag ==
0
){
  
mAudioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,AudioManager.ADJUST_LOWER,
                            
AudioManager.FX_FOCUS_NAVIGATION_UP);
}
//增加音量,调出系统音量控制
else 
if
(flag ==
1
){
  
mAudioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,AudioManager.ADJUST_RAISE,
                            
AudioManager.FX_FOCUS_NAVIGATION_UP);
}


常用方法:

android audioManager获取音量:


先获取AudioManager实例,

AudioManager mAudioManager = (AudioManager)getSystemService(Context.
AUDIO
_SERVICE);


//通话音量

int max = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL ); 

int current = mAudioManager.getStreamVolume(AudioManager.STREAM_VOICE_CALL ); 

//系统音量

int max = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_SYSTEM ); 

current = mAudioManager.getStreamVolume(AudioManager.STREAM_SYSTEM ); 

//铃声音量

max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_RING); 

current = mAudioManager.getStreamVolume(AudioManager.STREAM_RING ); 

//音乐音量

max = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC ); 

current = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC ); 


//提示声音音量

max = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_ALARM ); 

current = mAudioManager.getStreamVolume(AudioManager.STREAM_ALARM ); 

转载于:https://www.cnblogs.com/lechance/p/4373378.html

你可能感兴趣的文章
C# 关于XML的简单操作实例
查看>>
ggplot2:画世界地图和中国地图 合并数据 增添信息 标记
查看>>
VertexBuffer渲染次序
查看>>
python中使用 xpath
查看>>
集中管理:领导者,不能不考虑的几件事之—— 拿什么辅助你,我的决策?(一)...
查看>>
关于VirtualBox虚拟机安装GhostXP出现蓝屏proce***.sys 的解决办法
查看>>
JSP如何在servlet将一个数据模型对象传递给jsp页面
查看>>
PHP 实现“贴吧神兽”验证码
查看>>
根据一个表的数据情况显示另一个表的数据
查看>>
TP4056大电流1A使用注意事项
查看>>
Java常考面试题(四)
查看>>
学习Javascript闭包(Closure)
查看>>
你性格那么软,总是经常改变想法
查看>>
NeHe OpenGL教程 第十七课:2D图像文字
查看>>
学习SpringMVC——从HelloWorld开始
查看>>
awk打印指定列以后的所有内容
查看>>
用 kGDB 调试 Linux 内核
查看>>
vuejs2.0子组件改变父组件的数据
查看>>
P1019 单词接龙
查看>>
git的版本回退探索
查看>>