android - 为什么 KEYCODE_VOLUME_UP 和 KEYCODE_VOLUME_DOWN 仅适用于响铃音量事件,如何在 android 中使用 onKeyDown 获取媒体(音乐)音量事件
问题描述
我想根据物理音量音乐键更新我的搜索栏,但我的代码不起作用!请帮我..
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
if (keyCode == KeyEvent.KEYCODE_VOLUME_UP || keyCode == KeyEvent.KEYCODE_VOLUME_DOWN){
customSeekBar.setProgress(audioManager.getStreamVolume(AudioManager.STREAM_MUSIC));
return true;
}
return super.onKeyDown(keyCode, event);
}
解决方案
KeyEvent.KEYCODE_VOLUME_DOWN -> {
audioManager?.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI)
return true
}
KeyEvent.KEYCODE_VOLUME_UP -> {
audioManager?.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI)
return true}
推荐阅读
- javascript - React 的 setState 不会改变状态和更新组件
- java - 从 Android 中的设备 Mac 地址 (RARP) 获取 IP 地址
- scala - 从火花流中另一列的不同行派生列值
- c# - mysql-c#连接未完成
- android - 使用 adb 的 WIFI 连接
- linux - 增加变量号并分配新值
- wordpress - 如何修复此 WooCommerce / WordPress 错误?
- c++ - 跨平台 SIMD 调用可能只需要一个可执行文件?
- reactjs - 我们如何根据条件显示或隐藏 OverReact(使用 dart 构建反应组件的库)中的组件?
- python - Python mongoengine QuerySet 返回意外的值