点播的ProgressBar快进和快退是的声音效果:(hdp,mediacontroller.java)

private AudioManager mAM;
mAM = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
private OnSeekBarChangeListener mSeekListener = new OnSeekBarChangeListener() {
		public void onStartTrackingTouch(SeekBar bar) {
			mDragging = true;
			show(3600000);
			mHandler.removeMessages(SHOW_PROGRESS);
			if (mInstantSeeking)
				mAM.setStreamMute(AudioManager.STREAM_MUSIC, true); //播出声音
		}

		public void onProgressChanged(SeekBar bar, int progress,
				boolean fromuser) {
			if (touchProgressBar) {
				if (!fromuser)
					return;
				int newposition = (int) ((mDuration * progress) / 1000L);
				String time = stringForTime(newposition);
				if (mInstantSeeking)
					mPlayer.seekTo(newposition);
				if (mCurrentTime != null)
					mCurrentTime.setText(time);
			}
		}

		public void onStopTrackingTouch(SeekBar bar) {
			if (!mInstantSeeking)
				mPlayer.seekTo((mDuration * bar.getProgress()) / 1000);
			show(sDefaultTimeout);
			mHandler.removeMessages(SHOW_PROGRESS);
			mAM.setStreamMute(AudioManager.STREAM_MUSIC, false);  //关闭声音
			mDragging = false;
			mHandler.sendEmptyMessageDelayed(SHOW_PROGRESS, 1000);
		}
	};

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);

直接控制音量的多少:

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 );