如何将UIPanGestureRecognizer的y转换值用作MPVolumeSlider的音量值以通过手势控制音量?

问题描述 投票:0回答:1

我有AVPlayerAVPLayerLayer,除此之外,我还有UIView可以隐藏和显示UITapGestureRecognizer上的按钮和滑块。我已通过计算屏幕尺寸检测到了屏幕的左右边缘,右侧需要控制亮度,左侧需要控制音量。我在这里和其他网站上搜索了如何使用MPVolumeView访问系统音量,然后将其实现到我的应用程序,一切正常,除了不能将转换值y用作MPVolumeSlider的音量值。有什么方法可以用于此目的。]

我试图循环输入UIPanGestureRecognizer的每个翻译值y,但仍然无济于事。

@objc func handleTransparentPan(gesture: UIPanGestureRecognizer) {

        let viewWidth = transparentView.frame.width / 2
        let translation = gesture.translation(in: transparentView)
//        let x = translation.x
        let y = translation.y


        if gesture.location(in: transparentView).x > viewWidth {
            if y < 0 {
                print("volume up")
                print(y)
                if player.volume < maxVolume {
                    player.volume = player.volume + 5
                    changeSpeakerSliderPanelControls(volume: player.volume)
                }
            }
            else {
                print("volume down")

                if player.volume > 0 {
                    player.volume = player.volume - 5
                    changeSpeakerSliderPanelControls(volume: player.volume)
                }
            }

        }

        else {
            if y < 0 {
                print("Brightness up")
            }
            else {
                print("Brightenss down")
            }
        }
    }

这是我的手柄平移方法。而changeSpeakerSliderPanelControls是一种循环遍历MPVolumeView子视图的方法,一旦命中MPVolumeSlider并创建UISlider的实例并为其分配即将到来的音量值。

ios swift uipangesturerecognizer mpvolumeview
1个回答
0
投票
数据源不可用
© www.soinside.com 2019 - 2024. All rights reserved.