AudioManager类位于android.Media 包中,该类提供访问控制音量和钤声模式的操作。
官方文档中注明了:Use Context.getSystemService(Context.AUDIO_SERVICE)
to get an instance of this class.
所以我们可以通过下面的语句获得:
AudioManager audiomanage = (AudioManager)getAcitivity().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)
静音或不静音音频流
设置指定声音类型(streamType)是否为静音。如果state为true,则设置为静音;否则,不设置为静音。
//音量控制,初始化定义
AudioManager mAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
//最大音量
int maxVolume =mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
//当前音量
int currentVolume =mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
直接控制音量的多少:
if(isSilent){
mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC,0, 0);
}else{
mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC,tempVolume, 0);//tempVolume:音量绝对值
}
以一步步长控制音量的增减,并弹出系统默认音量控制条:
//降低音量,调出系统音量控制
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 );
分享到:
相关推荐
`AudioManager`是Android系统中的一个关键组件,用于管理和控制设备的音频输出。`setMode`方法是`AudioManager`中的一个重要接口,用于设定当前的音频模式,这直接影响到音频的路由和电话服务层的行为。在不同的音频...
**EV录屏软件详解** EV录屏软件是一款深受用户喜爱的免费录屏工具,它以其无广告、无需会员的特性在市场上脱颖而出。这款软件提供了一系列高效且实用的功能,旨在帮助用户轻松录制高质量的屏幕视频,无论是教学讲解...
Android 蓝牙 Audio 音频输出通道切换详解 Android 蓝牙 Audio 音频输出通道切换是 Android 开发中一个重要的知识点。Android 系统自动切换 Audio 音频输出通道的策略无法满足所有的产品需求,因此需要强制切换 ...
### Android各种音量的获取详解 #### 一、引言 在Android开发过程中,对于音频控制的需求非常普遍,比如在开发电话应用时调整通话音量、在音乐播放器中调节播放音量等。本文将详细介绍如何通过编程方式获取Android...
《Unity3d声音管理插件AudioManager详解》 在Unity3d游戏开发中,音频管理是不可或缺的一部分。它涉及到游戏中的各种声音效果,如角色动作声、环境背景音乐、UI反馈音等。Papae.AudioManager就是一款专为Unity3d...
### Android多媒体和相机详解(二):音频焦点管理 #### 概述 在Android系统中,音频焦点(Audio Focus)管理对于确保良好的用户体验至关重要。由于Android是一个多任务环境,可能存在多个应用程序试图同时使用设备...
参数包括一个AudioFocusChangeListener(用于监听音频焦点变化),一个音频流类型(例如:AudioManager.STREAM_MUSIC代表音乐流)和一个音频焦点类型(例如:AudioManager.AUDIOFOCUS_GAIN_TRANSIENT表示短暂获得...
10.5.1 AudioManager简介 404 10.6 振动器(Vibrator) 407 10.6.1 Vibrator简介 407 10.6.2 使用Vibrator控制手机振动 407 10.7 手机闹钟服务 (AlarmManager) 408 10.7.1 AlarmManager简介 408 ...
【知识点详解】 1. **Qt for Android**:Qt 是一个跨平台的应用程序开发框架,支持多种操作系统,包括Android。使用Qt for Android,开发者可以用C++编写应用,然后在Android设备上运行,无需学习Java或Kotlin等...
同时,AudioManager是管理设备音频设置和路由的主要接口。对于音乐播放应用,了解如何使用Mediaplayer或ExoPlayer库是至关重要的。 视频处理涉及到VideoView或SurfaceView,可以用来播放本地或网络视频。另外,...
例如,播放背景音乐时可以设置为`AudioManager.STREAM_MUSIC`。 8. 其他特性 `MediaPlayer`还支持设置音量、循环播放、跨应用播放等高级功能。例如,通过`setLooping(true)`可以使媒体文件无限循环,而`...
Android中默认系统的声音/大小修改和配置详解 Android系统中默认的声音设置是指系统内置的声音参数,包括系统声音、铃声、警报声、音乐声等多种声音类型。这些声音参数的设置直接影响着用户的使用体验,因此需要...
#### 四、AudioTrack详解 ##### 4.1 JAVA层AudioTrack类 AudioTrack的JAVA层实现位于`framework/base/media/java/android/media/AudioTrack.java`。接下来,我们通过一个示例来理解其基本使用流程: ```java // ...
### Android深入浅出之AudioTrack知识点详解 #### 一、目的与分析方法 本文旨在深入解析Android中的`AudioTrack`类及其使用场景,为开发者提供一份详尽的技术指南。通过剖析`AudioTrack`的工作原理及其实现细节,...
1. **Audio的Java部分**:位于`frameworks/base/media/java/android/media`,包含了AudioManager等关键类,提供高级别的音频控制接口。 2. **Audio的JNI部分**:位于`frameworks/base/core/jni`,负责构建lib...