2017-05-26 2 views
1

ラベルに現在の時刻を表示するプロジェクトで作成しています。ラベルのスタイルを変更する方法CMTimeGetSeconds

CMTimeGetSecondsを使用してプログラムでタイマーとラベルを設定して秒を追跡しました。

10分を超える数字を削除したいと思います(動画の長さはわずか2分です)。

これにはどのような方法が適していますか?

enter image description here

let currentTimeLabel: UILabel = { 
    let label = UILabel() 
    label.translatesAutoresizingMaskIntoConstraints = false 
    label.text = "0:00" 
    return label 
}() 

fileprivate func setupPlayerView() { 

player?.addObserver(self, forKeyPath: "currentItem.loadedTimeRanges", options: .new, context: nil) 

     /track player progress 

     let interval = CMTime(value: 1, timescale: 2) 
     player?.addPeriodicTimeObserver(forInterval: interval, queue: DispatchQueue.main, using: { (progressTime) in 

      let seconds = CMTimeGetSeconds(progressTime) 
      let secondsString = String(format: "%02d", Int(seconds.truncatingRemainder(dividingBy: 60))) 
      let minutesString = String(format: "%02d", Int(seconds/60)) 

      self.currentTimeLabel.text = "\(minutesString):\(secondsString)" 


      }) 
+0

スウィフト3.0コード。 – KKRocks

答えて

0

ねえあなたは条件付きコードを実行する必要があります。 - あなたが表示分前の状態を確認することができます

let timeDuration : TimeInterval = 60.0 //Recording time 
var incrementPrgVal : Float = 0.1 //DEFUALT VALUE 
var startTimeIncrementSec : Float64 = 1 

private func updateStartTime() 
    { 
     if self.audioRecorder != nil { 
      startTimeIncrementSec = startTimeIncrementSec + 1; 
      if(startTimeIncrementSec > timeDuration){ 
       return; 
      } 
      if(startTimeIncrementSec < 60) 
      { 
       let valSec = fmod(startTimeIncrementSec, 60); 
       if(valSec < 10){ 
        self.objOverlayView.lblStartTime.text = String(format: "00:0%.0f",valSec); 
       } 
       else{ 
        self.objOverlayView.lblStartTime.text = String(format: "00:%.0f",valSec); 
       } 
      } 
      else{ 

       let secondPresion = fmod(startTimeIncrementSec, 60) 
       let presionTime = (startTimeIncrementSec/60) 
       if(secondPresion < 10){ 
         self.objOverlayView.lblStartTime.text = String(format: "%.0f:0%.0f",presionTime,secondPresion); 
        } 
       else{ 
        self.objOverlayView.lblStartTime.text = String(format: "%.0f:%.0f",presionTime ,secondPresion); 
       } 
      } 
     } 
    } 
This is basic snippet of code 
関連する問題