代码之家  ›  专栏  ›  技术社区  ›  user979331

swift 4-avaudioplayer从uislider设置当前时间

  •  0
  • user979331  · 技术社区  · 6 年前

    我有一个 UISlider AvAudioPlayer ,当前我可以设置 滑块控件 currentTime A的 虚拟玩家 就像这样:

    timer = Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: (#selector(RecordController.updateTimer)), userInfo: nil, repeats: true)
    
    @objc func updateTimer() {
        if(audio != nil) {
           audioSlider.setValue(Float((self.audio?.currentTime)! / (self.audio?.duration)!), animated: false)
        }
    }
    

    但我该如何设置 当前时间 AVAudioPlayer 当更改 滑块控件 ?

    @IBAction func audioSliderUpdated(_ sender: Any) {
    }
    
    3 回复  |  直到 6 年前
        1
  •  1
  •   Christian Abella    6 年前

    @IBAction func audioSliderUpdated(_ sender: Any) {
      if let slider = sender as? UISlider {
        self.audio?.currentTime = slider.value    
      }
    }
    
        2
  •  0
  •   chandra1234    6 年前

     @IBAction func slide(_ sender: UISlider) {
        self.audio.currentTime = TimeInterval(slider.value)
    }
    
        3
  •  0
  •   ngbaanh    6 年前

    /// call this on viewDidLoad: configDefaults(for: audioSlider)
    func configDefaults(for slider: UISlider)
        slider.minimumValue = 0.0
        slider.maximumValue = 1.0
    }
    

    currentTime audioSlider.value duration player.currentTime

    @IBAction func audioSliderUpdated(_ sender: Any) {
        guard let slider = sender as? UISlider,
            let player = audio else {
            return
        }
        player.currentTime = Double(slider.value) * player.duration
    }