"Плеере АВ" - добавить секунды к CMTime


Как я могу добавить 5 секунд к своему текущему игровому времени?
На самом деле это мой код:

CMTime currentTime = music.currentTime;

Я не могу использовать CMTimeGetSeconds (), потому что мне нужен формат CMTime.

Спасибо за ваши ответы...

EDIT: как задать переменную для CMTime?

3 13

3 ответа:

Вот один из способов:

CMTimeMakeWithSeconds(CMTimeGetSeconds(music.currentTime) + 5, music.currentTime.timescale);

Элегантный способ-это использование CMTimeAdd

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

CMTime resultTime  = CMTimeAdd(currentTime,timeToAdd);

//then hopefully 
[music seekToTime:resultTime];

К вашему редактированию: вы можете создать CMTime struct следующими способами

CMTimeMake
CMTimeMakeFromDictionary
CMTimeMakeWithEpoch
CMTimeMakeWithSeconds

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

В Swift:

private extension CMTime {

    func timeWithOffset(offset: NSTimeInterval) -> CMTime {

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

        return CMTimeMakeWithSeconds(secondsWithOffset, timescale)

    }

}