package com.mogoo.launcher2.taskManager.ui; import com.mogoo.launcher.R; import android.content.Context; import android.content.res.Resources; import android.media.AudioManager; import android.util.Log; import android.view.LayoutInflater; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.SeekBar; import android.widget.SeekBar.OnSeekBarChangeListener; public class Mogoo_TaskMusicBar extends RelativeLayout{ private SeekBar mVoiceProgress; private ImageView mVoiceIcon; private AudioManager audioManager; private int maxvolume; private int maxRingVolume; private Context mContext; private Resources resources; public Mogoo_TaskMusicBar(Context context) { super(context); LayoutInflater mInflater=LayoutInflater.from(context); mInflater.inflate(R.layout.mogoo_task_music_bar, this,true); mContext=context; resources=context.getResources(); audioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE); maxvolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC); maxRingVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_RING); init(); } public AudioManager getAudioManager() { return audioManager; } private void findViews(){ mVoiceProgress = (SeekBar)findViewById(R.id.voiceprogress); mVoiceIcon = (ImageView)findViewById(R.id.voiceicon); } private void setListener(){ mVoiceProgress.setOnSeekBarChangeListener(mVoiceSeekListener); } private void init(){ findViews(); setListener(); if(!audioManager.isMusicActive()) { setRingVolume(); } else { setVolume(); } } /** * 设置媒体音量 * */ public void setVolume() { int volume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC); audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, volume, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE); mVoiceProgress.setProgress(volume*100/maxvolume); } public void setRingVolume() { Log.d("lss", " audioManager.getMode()=" + audioManager.getMode()); int volume = audioManager.getStreamVolume(AudioManager.STREAM_RING); audioManager.setStreamVolume(AudioManager.STREAM_RING, volume, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE); mVoiceProgress.setProgress(volume*100/maxRingVolume); } /** * 音量进度监听 * */ private OnSeekBarChangeListener mVoiceSeekListener = new OnSeekBarChangeListener() { int volume; public void onStartTrackingTouch(SeekBar bar) { } public void onProgressChanged(SeekBar bar, int progress, boolean fromuser) { if( !audioManager.isMusicActive()) { volume = maxRingVolume*progress/100; } else { volume = maxvolume*progress/100; } } public void onStopTrackingTouch(SeekBar bar) { if(!audioManager.isMusicActive()) { audioManager.setStreamVolume(AudioManager.STREAM_RING, volume, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE); } else { audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, volume, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE); } } }; }