В настоящее время я пытаюсь изменить время воспроизведения песни, которая воспроизводится с помощью ползунка.
Моя проблема заключается в получении точного AVAudioTime для планирования воспроизведения на основе ползунка.
Код (быстро) выглядит так:
@IBAction func ChangeAudioTime(sender: AnyObject) {
//get current sampleRate of song already playing
var nodetime: AVAudioTime = self.playerNode.lastRenderTime
var playerTime: AVAudioTime = self.playerNode.playerTimeForNodeTime(nodetime)
playerNode.stop()
var time: NSTimeInterval = NSTimeInterval(Slider.value)
var hostTime = AVAudioTime.hostTimeForSeconds(time)
var sampleTime = AVAudioFramePosition(hosttime/UInt64(playerTime.sampleRate))
var ExampleTime: AVAudioTime = AVAudioTime(hostTime:hostTime, sampleTime: sampleTime, atRate: playerTime.sampleRate)
playerNode.scheduleFile(audioFile, atTime:ExampleTime, completionHandler:nil)
playerNode.play()
}
Максимальное значение ползунка соответствует длине песни, так что это не проблема.
Песня просто начинает играть с самого начала
Вывод ExampleTime в консоли:
<AVAudioTime 0x1702b4160: 147.874222 s 80475 fr (/44100 Hz)>
Что я делаю не так?