音量调节ui显示与隐藏

设置音量调节的时候遇到3个问题.

1.设置了音量调节时系统音量ui显示出来,但实际上是按一下按键ui显示出来,按一下按键ui又隐藏回去,不能正常显示为调节完后才隐藏.

img

        // 获取音频管理实例
        val mAudioManager = getSystemService(AUDIO_SERVICE) as AudioManager
        // 设置要控制的音频流类型
        val streamType = AudioManager.STREAM_MUSIC
        // 获取最大音量,当前音量
        val maxVolume = mAudioManager.getStreamMaxVolume(streamType)
        var currentVolume = mAudioManager.getStreamVolume(streamType)
        binding.seekBar.progress = currentVolume

        binding.upBtn.setOnClickListener {
            if (currentVolume < maxVolume) {
                currentVolume++
            }
            binding.seekBar.progress = currentVolume
            // 把数据设置给系统的流类型,音量值,第三个参数音量条是否可见.0为不可见
            mAudioManager.setStreamVolume(streamType, currentVolume, AudioManager.FLAG_SHOW_UI)
        }

2.seekbar进度条现在是一直显示的.怎么实现调节时显示,调节完后延迟隐藏.

3.viewModel中能获取音频的实例吗,一样的写法出错

img

可以使用Handler来实现延迟隐藏的效果

1.调节音量之后,在一定时间内自动关闭显示的音量ui。可以通过定时器来控制,弊端是定时器控制不精准,可以查找下api,是否有响应的声音ui显示隐藏的回调函数。如果有回调函数I就可以精确控制ui的显示与隐藏了。

2.getSystemService需要传递上下文。上面的提示一定说明了。

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632