【问题标题】:How to make current time automatically update in AVAudioplayer如何在 AVAudioplayer 中自动更新当前时间
【发布时间】:2017-03-30 14:13:09
【问题描述】:

我想知道:如何让 AVAudioplayer 中的 currentTime 自动更新。 我用这个代码

    let currentTime1 = Int((player1?.currentTime)!)
    let minutes = currentTime1/60
    let seconds = currentTime1 - minutes * 60
    curLabel.text = NSString(format: "%02d:%02d", minutes,seconds) as String

谢谢。

【问题讨论】:

    标签: ios swift xcode avaudioplayer playback


    【解决方案1】:
    func startRecording() -> Void {
            ....
            .... 
         let aSelector : Selector = #selector(CLASSNAME.updateTime)
         timer = NSTimer.scheduledTimerWithTimeInterval(0.01, target: self, selector: aSelector,userInfo: nil, repeats: true)
         startTime = NSDate.timeIntervalSinceReferenceDate()
    
    }
    
    
    func updateTime() {
            let currentTime = NSDate.timeIntervalSinceReferenceDate()
            var elapsedTime: NSTimeInterval = currentTime - startTime
            let minutes = UInt8(elapsedTime / 60.0)
            elapsedTime -= (NSTimeInterval(minutes) * 60)
            let seconds = UInt8(elapsedTime)
            elapsedTime -= NSTimeInterval(seconds)
            let strMinutes = String(format: "%02d", minutes)
            let strSeconds = String(format: "%02d", seconds)
            YOUR-LABEL.text = "\(strMinutes):\(strSeconds)"
    
        }
    

    现在,当您调用 startRecording() 函数时,它将开始更新 YOUR-LABEL 上的文本

    希望现在很清楚

    【讨论】:

    • 1. func 中第二行的“START-TIME”是什么。
    • 要用作开始时间的参考时间
    • 好的,我把它设为 0.0 现在它说线程 1:EXC_BAD_INSTRUCTION (code=EXC_1386_INVOP, subcode=0x0)
    • 像这样获取时间 NSDate.init(timeIntervalSinceNow: -60)。 . .您可以输入任意秒数而不是 60
    • 这里 startTime 是全局变量“private var startTime = NSTimeInterval()”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-10
    • 2012-03-22
    相关资源
    最近更新 更多