gpt4 book ai didi

ios - 当我的 slider 拇指在中间时,为什么没有播放音乐音量?

转载 作者:行者123 更新时间:2023-11-28 12:49:44 25 4
gpt4 key购买 nike

我有一个控制音乐播放音量的 UISlider。当拇指在中间时,音乐的音量设置为 1 并且应该播放。我遇到的问题是它正在播放,但是一旦我将拇指向右或向左移动并尝试将拇指移回中间,我就听不到任何音乐。当我向左或向右移动并为任一 AVPlayer 播放音乐时,它会起作用,除非 slider 位于中间。提前致谢!

    middleSlider = UISlider(frame: CGRectMake(110 * scaleFactor, 50, 300, 150))
middleSlider.tintColor = UIColor.whiteColor()
middleSlider.setThumbImage(UIImage(named: "thumb3"), forState: UIControlState.Normal)
middleSlider.minimumTrackTintColor = UIColor.whiteColor()
middleSlider.maximumTrackTintColor = UIColor.whiteColor()
middleSlider.maximumValue = 2.0
middleSlider.minimumValue = 0.0
middleSlider.value = 1.0
middleSlider.continuous = true
middleSlider.userInteractionEnabled = false
middleSlider.addTarget(self, action: #selector(middleSliderChangeAudio), forControlEvents: UIControlEvents.AllEvents)
self.view?.addSubview(middleSlider)


func middleSliderChangeAudio() {
if middleSlider.value < 1.0 {

player.volume = 1
player2.volume = 0

}

if middleSlider.value > 1.0 {
player.volume = 0
player2.volume = 1
}

if middleSlider.value == 1.0 {
player.volume = 1
player2.volume = 1
}

}

最佳答案

您的应用正在实现一个非常不友好的用户界面。您正在检查 slider 的旋钮是否精确在中心。

即使在最好的情况下,任何人都很难做到这一点。用户必须点击一个像素。

此外,根据 slider 的框架,用户可能会或可能不会将旋钮放在那里,因为旋钮位置将调整到最近的像素。准确达到 1.0 可能是不可能的——最近的可能位置可能略高于和低于 1.0。

您应该寻找 1.0 的某个阈值内的值,而不是准确地检查 1.0。

let threshold: Float = 0.05  // Experiment with this to see what feels best.
let lowerBoundary: Float = 1.0 - threshold
let upperBoundary: Float = 1.0 + threshold

if middleSlider.value < lowerBoundary {
player.volume = 1
player2.volume = 0
}
else if middleSlider.value <= upperBoundary {
player.volume = 1
player2.volume = 1
}
else /* must be middleSlider.value > upperBoundary */ {
player.volume = 0
player2.volume = 1
}

如果您想看到 slider “吸附”到中心,请在中间条件内调用 middleSlider.value = 1.0

关于ios - 当我的 slider 拇指在中间时,为什么没有播放音乐音量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36826981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com