2024年安卓最全Android 修改系统音量及监听,2024年最新Android插件化面试题

最后

目前已经更新的部分资料:



网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

btn_add.setOnClickListener {

if (mCurrentVolume < mMaxVolume) {

mCurrentVolume++

} else {

mCurrentVolume = mMaxVolume

}

updateNum(mCurrentVolume)

setStreamVolume(mCurrentVolume)

}

btn_reduce.setOnClickListener {

if (mCurrentVolume > 0) {

mCurrentVolume–

} else {

mCurrentVolume = 0

}

updateNum(mCurrentVolume)

setStreamVolume(mCurrentVolume)

}

注意,这里要判断一下是否超出了音量的最大值最小值。

在事件中,除了判断最大值最小值之外,还调用了两个方法

updateNum更新页面显示:

/**

  • 更新页面显示

*/

private fun updateNum(volume: Int) {

tv_volume.text = volume.toString()

seekBar.progress = volume

}

还调用了setStreamVolume方法,这里就涉及到setStreamVolumeadjustStreamVolume的区别:

  • setStreamVolume 直接设置音量,指哪打哪

  • adjustStreamVolume 步长式设置音量,即10,20,30这样阶梯式

二者都可以设置音量,可以根据自己的业务需求来选择。

setStreamVolume

来看一下具体的setStreamVolume方法:

private fun setStreamVolume(volume: Int) {

mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, volume, AudioManager.FLAG_SHOW_UI)

}

  • 参数1:音量类型

  • 参数2:音量数值

  • 参数3:

  • AudioManager.FLAG_SHOW_UI 调整音量时显示系统音量进度条 , 0 则不显示

  • AudioManager.FLAG_ALLOW_RINGER_MODES 是否铃声模式

  • AudioManager.FLAG_VIBRATE 是否震动模式

  • AudioManager.FLAG_SHOW_VIBRATE_HINT 震动提示

  • AudioManager.FLAG_SHOW_SILENT_HINT 静音提示

  • AudioManager.FLAG_PLAY_SOUND 调整音量时播放声音

adjustStreamVolume

音量递增

private fun adjustRaise() {

mAudioManager.adjustStreamVolume(

AudioManager.STREAM_MUSIC,

AudioManager.ADJUST_RAISE,

AudioManager.FLAG_SHOW_UI

)

}

  • 参数1:音量类型

  • 参数2:音量调整方向

  • AudioManager.ADJUST_RAISE 音量逐渐递增

  • AudioManager.ADJUST_LOWER 音量逐渐递减

  • AudioManager.ADJUST_SAME 不变

  • 参数3:同setStreamVolume参数3

音量递减

private fun adjustLower(volume: Int) {

mAudioManager.adjustStreamVolume(

AudioManager.STREAM_MUSIC,

AudioManager.ADJUST_LOWER,

AudioManager.FLAG_SHOW_UI

)

}

Github: https://github.com/yechaoa/BrightnessAndVolume

监听音量控制按键

===================================================================

除了我们手动去改之外,用户也可以通过物理按键或是耳机来控制音量,这时,我们理应也要做出相应的改变,所以,还需要对音量按键做监听才行。

这里就用到熟悉的老方法了,重写ActivityonKeyDown方法:

/**

  • 监听并接管系统的音量按键,

  • 注意:最好保持原有逻辑不变

*/

override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {

when (keyCode) {

//音量+按键

KeyEvent.KEYCODE_VOLUME_UP -> {

if (mCurrentVolume < mMaxVolume) {

mCurrentVolume++

} else {

mCurrentVolume = mMaxVolume

}

updateNum(mCurrentVolume)

setStreamVolume(mCurrentVolume)

return true

}

小福利:

在当下这个碎片化信息环境的时代,很多资源都可以在网络上找到,只取决于你愿不愿意找或是找的方法对不对了

很多朋友不是没有资料,大多都是有几十上百个G,但是杂乱无章,不知道怎么看从哪看起,甚至是看后就忘

如果大家觉得自己在网上找的资料非常杂乱、不成体系的话,我也分享一套给大家,比较系统,我平常自己也会经常研读。

2021大厂最新Android面试真题解析

Android大厂面试真题解析

各个模块学习视频:如数据结构与算法

算法与数据结构资料图

只有系统,有方向的学习,才能在段时间内迅速提高自己的技术。
一线互联网架构师

这份体系学习笔记,适应人群:**第一,**学习知识比较碎片化,没有合理的学习路线与进阶方向。**第二,**开发几年,不知道如何进阶更进一步,比较迷茫。第三,到了合适的年纪,后续不知道该如何发展,转型管理,还是加强技术研究。如果你有需要,我这里恰好有为什么,不来领取!说不定能改变你现在的状态呢!点赞+评论即可获得!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

,转型管理,还是加强技术研究。如果你有需要,我这里恰好有为什么,不来领取!说不定能改变你现在的状态呢!点赞+评论即可获得!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 28
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值