How can I add 5 seconds to my current playing Time?
Actually this is my code:
CMTime currentTime = music.currentTime;
I can´t use CMTimeGetSeconds() , because I need the CMTime format.
Thank you for your answers...
EDIT: How can I set a variable for CMTime?
Here is one way:
CMTimeMakeWithSeconds(CMTimeGetSeconds(music.currentTime) + 5, music.currentTime.timescale);
elegant way is using CMTimeAdd
CMTime currentTime = music.currentTime;
CMTime timeToAdd   = CMTimeMakeWithSeconds(5,1);
CMTime resultTime  = CMTimeAdd(currentTime,timeToAdd);
//then hopefully 
[music seekToTime:resultTime];
to your edit: you can create CMTime struct by these ways
CMTimeMake
CMTimeMakeFromDictionary
CMTimeMakeWithEpoch
CMTimeMakeWithSeconds
more @: https://developer.apple.com/library/mac/#documentation/CoreMedia/Reference/CMTime/Reference/reference.html
In Swift:
private extension CMTime {
    func timeWithOffset(offset: TimeInterval) -> CMTime {
        let seconds = CMTimeGetSeconds(self)
        let secondsWithOffset = seconds + offset
        return CMTimeMakeWithSeconds(secondsWithOffset, preferredTimescale: timescale)
    }
}
Swift 4, using custom operator:
extension CMTime {
    static func + (lhs: CMTime, rhs: TimeInterval) -> CMTime {
        return CMTime(seconds: lhs.seconds + rhs,
                      preferredTimescale: lhs.timescale)
    }
    static func += (lhs: inout CMTime, rhs: TimeInterval) {
        lhs = CMTime(seconds: lhs.seconds + rhs,
                      preferredTimescale: lhs.timescale)
    }
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With