Как отобразить текущее время видео?

Как сделать, чтобы отобразить текущее время видео? Я занимаюсь разработкой в ​​Obj-C и использую фреймворк QTKit. Мне интересно, как сделать, чтобы QTMovieView постоянно уведомлял мою функцию "refreshCurrentTimeTextField". Я нашел образец Apple, но оказалось, что довольно сложно извлечь то, что мне действительно нужно. (Http://developer.apple.com/library/mac/#samplecode/QTKitMovieShuffler/Introduction/Intro.html)

1 ответ

Решение

Создайте NSTimer, который обновляется раз в секунду:

[NSTimer scheduledTimerWithInterval:1.0 target:self selector:@selector(refreshCurrentTimeTextField) userInfo:nil repeats:YES]

А затем создайте функцию обратного вызова таймера и превратите время в правильную метку ЧЧ: ММ: СС:

-(void)refreshCurrentTimeTextField {
    NSTimeInterval currentTime; 
    QTMovie *movie = [movieView movie];
    QTGetTimeInterval([movie currentTime], &currentTime);

    int hours = currentTime/3600;
    int minutes = (currentTime/60) % 60;
    int seconds = currentTime % 60;

    NSString *timeLabel;
    if(hours > 0) {
        timeLabel = [NSString stringWithFormat:@"%02i:%02i:%02i", hours, minutes, seconds];
    } else {
        timeLabel = [NSString stringWithFormat:@"%02i:%02i", minutes, seconds];
    }
    [yourTextField setStringValue:timeLabel];
}
Другие вопросы по тегам