AudioManger对象通过getSystemService(Service.AUDIO_SERVICE)获取
AudioManger常用的几个方法void android.media.AudioManager.adjustStreamVolume(int streamType, int direction, int flags):第二个表示调整音乐的大小,第三个参数表示显示调整是的标志 AudioManager.FLAG_SHOW_UI;调整手机类型的声音;第一个参数的几个值
STREAM_ALARM:手机闹铃的声音
STREAM_MUSIC:手机音乐的声音
STREAM_DTMF:DTMF音调的声音
STREAM_RING:电话铃声的声音
STREAM_NOTFICATION:系统提示的声音
STREAM_SYSTEM:系统的声音
STREAM_VOICE_CALL:语音电话声音
void android.media.AudioManager.setMicrophoneMute(boolean on)设置是否让麦克风设置静音
void android.media.AudioManager.setRingerMode(int ringerMode):设置手机电话铃声的模式;支持的几个属性值
RINGER_MODE_NORMAL:正常的手机铃声
RINGER_MODE_SILENT:手机铃声静音
RING_MODE_VIBATE:手机震动
void android.media.AudioManager.setStreamMute(int streamType, boolean state)将指定的音量类型调整为静音
- package com.android.xiong.audiotest;
- import android.app.Activity;
- import android.app.Service;
- import android.media.AudioManager;
- import android.media.MediaPlayer;
- import android.os.Bundle;
- import android.view.Menu;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.ToggleButton;
- public class MainActivity extends Activity {
- private Button play, up, down;
- private ToggleButton mute;
- private AudioManager aManger;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- // 获取系统的音频服务
- aManger = (AudioManager) getSystemService(Service.AUDIO_SERVICE);
- // 获取界面的三个按钮和一恶搞ToggleButton
- play = (Button) findViewById(R.id.play);
- up = (Button) findViewById(R.id.up);
- down = (Button) findViewById(R.id.down);
- mute = (ToggleButton) findViewById(R.id.mute);
- // 绑定监听事件
- play.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- // 初始化MediaPlay对象 ,准备播放音乐
- MediaPlayer mPlayer = MediaPlayer.create(MainActivity.this,
- R.raw.earth);
- // 设置循环播放
- mPlayer.setLooping(true);
- // 开始播放
- mPlayer.start();
- }
- });
- up.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- // 指定调节音乐的音频,增大音量,而且显示音量的图形示意
- aManger.adjustStreamVolume(AudioManager.STREAM_MUSIC,
- AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI);
- }
- });
- down.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- // 指定调节音乐的音频,增大音量,而且音量的图形示意
- aManger.adjustStreamVolume(AudioManager.STREAM_MUSIC,
- AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI);
- }
- });
- mute.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- aManger.setStreamMute(AudioManager.STREAM_MUSIC, true);
- }
- });
http://blog.sina.com.cn/s/blog_5da93c8f010126pz.html
标签: audiomanagerit | 分类:手机世界 |
通过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 );
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.main, menu);
- return true;
- }
- }
本文详细介绍了Android中的音频管理器(AudioManager)的使用方法,包括如何获取AudioManager实例、调整不同类型的音量、设置铃声模式及静音等操作。
1824

被折叠的 条评论
为什么被折叠?



