AVPlayer-ajouter des secondes à CMTime

Comment puis-je ajouter 5 secondes à mon temps de jeu actuel?

en Fait, c'est mon code:

CMTime currentTime = music.currentTime;

Je ne peux pas utiliser Cmtimegetsecondes (), parce que j'ai besoin du format CMTime.

Merci pour vos réponses...

EDIT: comment définir une variable pour CMTime?

13
demandé sur Lorenz Wöhr 2013-02-26 23:50:58

3 réponses

en Voici une:

CMTimeMakeWithSeconds(CMTimeGetSeconds(music.currentTime) + 5, music.currentTime.timescale);
23
répondu BlueVoodoo 2013-02-26 19:56:21

de manière élégante est l'aide de CMTimeAdd

CMTime currentTime = music.currentTime;
CMTime timeToAdd   = CMTimeMakeWithSeconds(5,1);

CMTime resultTime  = CMTimeAdd(currentTime,timeToAdd);

//then hopefully 
[music seekToTime:resultTime];

à votre édition: vous pouvez créer cmtime struct par ces moyens

CMTimeMake
CMTimeMakeFromDictionary
CMTimeMakeWithEpoch
CMTimeMakeWithSeconds

plus @: https://developer.apple.com/library/mac/#documentation/CoreMedia/Reference/CMTime/Reference/reference.html

18
répondu tomasgatial 2016-01-22 02:14:57

Dans Swift:

private extension CMTime {

    func timeWithOffset(offset: NSTimeInterval) -> CMTime {

        let seconds = CMTimeGetSeconds(self)
        let secondsWithOffset = seconds + offset

        return CMTimeMakeWithSeconds(secondsWithOffset, timescale)

    }

}
2
répondu Rudolf Adamkovič 2015-03-31 13:18:06