Подтвердить что ты не робот

AVPlayer - добавьте секунды в CMTime

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

CMTime currentTime = music.currentTime;

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

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

EDIT: Как установить переменную для CMTime?

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

CMTime resultTime  = CMTimeAdd(currentTime,timeToAdd);

//then hopefully 
[music seekToTime:resultTime];

для вашего редактирования:  вы можете создать CMTime-структуру этими способами.

CMTimeMake
CMTimeMakeFromDictionary
CMTimeMakeWithEpoch
CMTimeMakeWithSeconds

больше @: https://developer.apple.com/library/mac/#documentation/CoreMedia/Reference/CMTime/Reference/reference.html

Ответ 3

В Swift:

private extension CMTime {

    func timeWithOffset(offset: NSTimeInterval) -> CMTime {

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

        return CMTimeMakeWithSeconds(secondsWithOffset, timescale)

    }

}