当我的滑块拇指在中间时,怎么没有播放音乐音量?

时间:2016-04-24 18:09:05

标签: ios swift avplayer uislider

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

    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
}

  }

1 个答案:

答案 0 :(得分:2)

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

即使在最好的情况下,这对任何人来说都是非常困难的。用户必须只有一个像素。

另外,取决于滑块的框架,用户可能会或可能不能将旋钮放在那里,因为旋钮位置将被调整到最近的像素。可能无法准确地达到1.0 - 最近的可能位置可能略高于和低于1.0。

您应该在1.0的某个阈值内查找值。

,而不是精确地检查1.0
middleSlider.value = 1.0

如果你想看滑块&#34; snap&#34;到中心,在中间条件下拨打{{1}}。