Android 监听音量键并且改变音量
来源:互联网 发布:网络宣传部是干什么 编辑:程序博客网 时间:2024/05/07 14:11
改变系统的音量,除非涉及到管理各种音量的工具类软件,一般是改变媒体音量,也就是AudioManager.STREAM_MUSIC,比如说打游戏的时候,不能把电话的音量改变了。这样的话需要用到
设置当前音量
监听音量键事件
private AudioManager audioMgr;
audioMgr = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
获取最大音量
maxVolume = audioMgr.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
不同手机的系统最大音量不一样,所以如果需要显示音量变化,需要自己分等份获取当前音量
private int getMediaVolume() { return audioMgr.getStreamVolume(AudioManager.STREAM_MUSIC); }
设置当前音量
private void setMediaVolume(int volume) { audioMgr.setStreamVolume(AudioManager.STREAM_MUSIC, volume, AudioManager.FLAG_PLAY_SOUND); }
监听音量键事件
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { switch (keyCode) { case KeyEvent.KEYCODE_VOLUME_UP: addMediaVolume(getMediaVolume()); playMedia(getMediaVolume()); return true; case KeyEvent.KEYCODE_VOLUME_DOWN: cutMediaVolume(getMediaVolume()); playMedia(getMediaVolume()); return true; default: break; } return super.onKeyDown(keyCode, event); }
private void addMediaVolume(int current) { current = current + stepVolume; if (current >= maxVolume) current = maxVolume; setMediaVolume(current); volumeSeekBar.setProgress(current); } private void cutMediaVolume(int current) { current = current - stepVolume; if (current <= 0) current = 0; setMediaVolume(current); volumeSeekBar.setProgress(current); }播放
private void playMedia(int volume) { if (mediaPlayer != null && mediaPlayer.isPlaying()) { return; } int music = volumeManager.getMusic(); if (music != mMusic) { mediaPlayer = MediaPlayer.create(getApplicationContext(), music); mMusic = music; } mediaPlayer.start(); }
0 0
- Android 监听音量键并且改变音量
- 监听android音量键
- android监听音量上下键调节音量
- Android 音量键的监听
- Android音量监听
- Android监听音量变化
- Android 音量改变广播
- 监听音量键事件
- 监听音量上下键调节音量
- Android通过音量键调节音量大小
- seekbar控制music音量,并且和手机音量键同步
- Android 自定义SeekBar动态改变 硬件音量大小 实现和音量键的同步
- android 音量键消息
- Android中对音量的监听控制
- iOS开发之:监听音量键
- 音量键的监听 双击退出程序
- 监听音量键的两种方法
- 如何监听音量按键
- [wx]系统托盘(Tray)-wxTaskBarIcon
- CoreGraphics 学习摘记之 Paths
- 正则表达式
- 黑马程序员-装饰与继承
- java连接mysql乱码
- Android 监听音量键并且改变音量
- ExecutorService生命周期
- POJ 3211 Washing Clothes 背包题解
- web.xml 中的listener、 filter、servlet 加载顺序及其详解
- 代码质量与性能优化
- linux手动释放cache
- .9
- POJ 2396 Budget 上下界网络流
- 要开始编程了