2016-05-04 42 views
-1

我在hh:mm:ss的格式中有文字爲「00:01:30」的字符串。 我想把這段時間當作我的視頻播放器的尋找時間。手段在排序我想設置'seekToTime'從字符串值是hh:mm:ss。我將它轉換爲NSDate formate,但無法使用thisToToToTime。請建議。 謝謝。AVPlayer在NSDate上尋找玩家

+0

寫代碼做這種轉換有什麼困難? – trojanfoe

回答

2
self.audioPlayer.timeFormat(self.audioPlayer.getCurrentAudioTime())) 


    func getCurrentAudioTime(){ 
    let dur = CMTimeGetSeconds(audioPlayer.currentTime()) 
    let cmValue = NSTimeInterval(dur) 
    let newTime = CMTimeMakeWithSeconds(value, 1) 
    self.audioPlayer.seekToTime(newTime) 

}

func timeFormat(value:Double) -> NSString 
    { 
    let someFloat = Float(value) 
    let floatvalue = lroundf(someFloat) 
    let floorvalue = Double(floatvalue) 

    let minutes = floor(floorvalue/60) 
    let seconds = floorvalue - (minutes * 60) 

    let roundsec = Float(seconds) 
    let roundmin = Float(minutes) 

    let roundedSeconds = lroundf(roundsec) 
    let roundedMinutes = lroundf(roundmin) 

    var time : NSString! 
    time = NSString.init(format:"%d:%02d", roundedMinutes,roundedSeconds) 
    return time; 
    } 
+0

它是客觀的c? –

+0

不,它的迅捷語言 – Purushothaman

+0

我問的是客觀的C.但感謝您的建議,我得到了解決方案。 –

1

,如果你的字符串轉換爲CMTime格式,然後分配尋道時間,以及下面的代碼中給出,

let fileURL: NSURL = NSURL(string: timeString)! 
let asset = AVURLAsset(URL: fileURL, options: nil) 
let audioDuration = asset.duration 
let newTime:CMTime = CMTimeGetSeconds(audioDuration) 
playerVal.seekToTime(newTime) 

希望它有幫助

0

您可以使用以下代碼將字符串轉換爲CMTime,

func seekTime(timeString:String) -> CMTime? { 
    let dateFormatter = NSDateFormatter.init() 
    dateFormatter.dateFormat = "HH:mm:ss" 
    if let startDate = dateFormatter.dateFromString("00:00:00") { 
     if let neededDate = dateFormatter.dateFromString(timeString) { 
      let interval = neededDate.timeIntervalSinceDate(startDate) 
      return CMTime.init(value: CMTimeValue(interval), timescale: 1) 
     } 
    } 
    return nil; 
}