1
У меня возникла проблема с анимацией UISlider в качестве прогресса воспроизведения MPMusicPlayer. Я видел много сообщений об этом на obj-c и AVAudioPlayer.Swift - прогресс воспроизведения MPMusicPlayer как UISlider
Я попытался это:
func startTimer(){
if timer == nil {
timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: Selector("update:"), userInfo: nil,repeats: true)
timer.fire()
}
}
func stopTimer(){
timer.invalidate()
}
func update(timer: NSTimer){
if myMusicPlayer?.playbackState == MPMusicPlaybackState.Playing{
return
}
var minute_ = abs(Int((myMusicPlayer!.currentPlaybackTime/60) % 60))
var second_ = abs(Int(myMusicPlayer!.currentPlaybackTime % 60))
var minute = minute_ > 9 ? "\(minute_)" : "0\(minute_)"
var second = second_ > 9 ? "\(second_)" : "0\(second_)"
progressTimerLabel.text = "\(minute):\(second)"
progressBar.value = CFloat(myMusicPlayer!.currentPlaybackTime)
}
ProgressBar мой UISlider.
Я вызвал startTimer(), когда я воспроизвожу аудио, но он все еще не анимируется. Что я могу сделать, чтобы оживить UISlider?
делает ваш контроль достигают 'progressBar.value = CFloat (myMusicPlayer .currentPlaybackTime!)' Эту строку? проверьте его, добавив точку останова в оператор return и один в progressBar.value line –
Я пробовал println (myMusicPlayer! .currentPlaybackTime), и он появляется только один раз. Я думаю, что он должен появиться много раз, когда работает таймер. –
не должен возвращаться, если состояние! = 'Игра? –