码迷,mamicode.com
首页 > 移动开发 > 详细

Android 音量调节

时间:2016-07-07 19:25:58      阅读:316      评论:0      收藏:0      [点我收藏+]

标签:

对于Android的音量调节,可以分为按键调节音量和设置中调节音量。我们首先说一说设置中的音量调节。

一、音量的分类:

1.AudioManager.STREAM_VOICE_CALL

2.AudioManager.STREAM_RING

3.AudioManager.STREAM_MUSIC,

4.AudioManager.STREAM_ALARM

5.AudioManager.STREAM_NOTIFICATION

二、音量的范围:

对于不同类型的音量Android规定了不同的范围,在AudioService中有一个数组,定义了不同音量的范围。

private final int[] MAX_STREAM_VOLUME = new int[] {
  5, // STREAM_VOICE_CALL
  7, // STREAM_SYSTEM
  7, // STREAM_RING
  15, // STREAM_MUSIC
  7, // STREAM_ALARM
  7, // STREAM_NOTIFICATION
  15, // STREAM_BLUETOOTH_SCO
  7, // STREAM_SYSTEM_ENFORCED
  15, // STREAM_DTMF
  15 // STREAM_TTS
};

三:调节音量的方法:

int streamValue = am.getStreamVolume(streamType); 获取当前类型的音量值

AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); 获取音频服务

audioManager.setStreamVolume(mStreamType, streamValue, 0);  设置音量

现在说一下使用按键调节音量

使用按键调节音量,首先会在PhoneWinManager中收到一个按键的事件,然后调用AudioService中的adjustStreamVolume方法,源码如下:

/**
* Tell the audio service to adjust the volume appropriate to the event.
* @param keycode
*/
void handleVolumeKey(int stream, int keycode) {
IAudioService audioService = getAudioService();
if (audioService == null) {
return;
}
try {
// since audio is playing, we shouldn‘t have to hold a wake lock
// during the call, but we do it as a precaution for the rare possibility
// that the music stops right before we call this
// TODO: Actually handle MUTE.
mBroadcastWakeLock.acquire();
audioService.adjustStreamVolume(stream,
keycode == KeyEvent.KEYCODE_VOLUME_UP
? AudioManager.ADJUST_RAISE
: AudioManager.ADJUST_LOWER,
0);
} catch (RemoteException e) {
Log.w(TAG, "IAudioService.adjustStreamVolume() threw RemoteException " + e);
} finally {
mBroadcastWakeLock.release();
}
}

在adjustStreamVolume会启动VolumePanel,也就是我们按音量键出现的界面。在VolumePanel中会调用AudioManager的setStreamVolume进行设置音量。

 

Android 音量调节

标签:

原文地址:http://www.cnblogs.com/sharecode/p/5651006.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!