android 拦截音量调节键,强制调节多媒体音量
来源:互联网 发布:矩阵解决实际问题 编辑:程序博客网 时间:2024/04/30 13:39
在项目中,如果没有音乐在放的时候,按调节音量的键,调用的是调节铃声的音量。
最近又用户反映,调节了音量,但在打游戏的时候的背景音乐的音量却没有变动。
正是因为用户在外面调的是铃声音量,而游戏背景音乐的音量确实多媒体的音量。
优化思路,在BaseActivity 拦截onKeyDown,强制调用调节音量的状态,设为调节多媒体音量的状态。
代码如下:
@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {switch (keyCode) {case KeyEvent.KEYCODE_VOLUME_DOWN://游戏音量减小AudioPlayUtils.getInstance().lowerVoice();return true;case KeyEvent.KEYCODE_VOLUME_UP://游戏音量增大AudioPlayUtils.getInstance().raiseVoice();return true;default:break;}return super.onKeyDown(keyCode, event);}
调用的方法如下:
/** * 调高音量(多媒体音量) */public void raiseVoice(){//强制调用多媒体音量audioManager.adjustStreamVolume( AudioManager.STREAM_MUSIC, AudioManager.ADJUST_RAISE, AudioManager.FLAG_PLAY_SOUND | AudioManager.FLAG_SHOW_UI); //本地保存多媒体音量int nowVol2 = PreferenceHelper.getMyPreference().getSetting().getInt("music", 0);if (nowVol2 != 15) {PreferenceHelper.getMyPreference().getEditor().putInt("music", nowVol2 + 1);PreferenceHelper.getMyPreference().getEditor().commit();AudioPlayUtils.getInstance().SetVoice(PreferenceHelper.getMyPreference().getSetting().getInt("music", 0));}}/** * 调小音量(多媒体音量) */public void lowerVoice(){//强制调用多媒体音量audioManager.adjustStreamVolume( AudioManager.STREAM_MUSIC, AudioManager.ADJUST_LOWER, AudioManager.FLAG_PLAY_SOUND | AudioManager.FLAG_SHOW_UI); //本地保存多媒体音量int nowVol = PreferenceHelper.getMyPreference().getSetting().getInt("music", 0);if (nowVol != 0) {PreferenceHelper.getMyPreference().getEditor().putInt("music", nowVol - 1);PreferenceHelper.getMyPreference().getEditor().commit();AudioPlayUtils.getInstance().SetVoice(PreferenceHelper.getMyPreference().getSetting().getInt("music", 0));}}
- android 拦截音量调节键,强制调节多媒体音量
- 拦截音量键调节音量
- android监听音量上下键调节音量
- Android通过音量键调节音量大小
- 多媒体音量调节的方法
- Android音量调节原理
- Android调节音量
- Android音量控制调节
- Android之音量调节
- Android音量控制调节
- Android 音量调节
- Android(Java):音量调节
- android 调节媒体音量
- android audio 音量调节
- Android 音量调节
- Android音量控制调节
- Android 音量调节方法
- Android音量控制调节
- php中csv导入的功能
- ASP.NET MVC 入门6 Hellper与数据的提交与绑定
- SetForegroundWindow的正确用法
- ContentSettings in Chromium
- ASP.NET MVC 入门7 ModelState与数据验证
- android 拦截音量调节键,强制调节多媒体音量
- git,github使用
- 偶然
- 命令
- 河内之塔
- TCP选项:TCP_NODELAY和TCP_CORK
- Android 使用Google Map API v2
- setsockopt设置socket状态
- This TableRow layout or its TableLayout parent isuseless