MPMoviePlayerViewController не может установить текущее время воспроизведения - PullRequest
1 голос
/ 20 марта 2012

Я пытаюсь установить свойство currentPlaybackTime для MPMoviePlayerController в MPMoviePlayerViewController, чтобы оно возобновляло воспроизведение видео (поток HLS) с того момента, когда оно было остановлено, когда приложение было активным. Вот мой код:

    //the functinon that sets playback time
    - (void)setCurrentPlayTime:(NSNumber *)time {
        if (self.moviePlayer.currentPlaybackTime < [time floatValue] - 10.0) {
            [self.moviePlayer setCurrentPlaybackTime:(NSTimeInterval)[time floatValue]];
        }
    }

    //app did become active callback
    - (void) applicationDidBecomeActiveNotification:(NSNotification*)notification {
        if (!isnan(_curPlayTime) && _curPlayTime > 0.0) {
            [self performSelector:@selector(setCurrentPlayTime:) withObject:[NSNumber numberWithFloat:_curPlayTime] afterDelay:0.1];
        }
    }

    //player load state did change callback
    -(void)playerLoadStateDidChange:(NSNotification *)notification {   
    MPMoviePlayerController *player = notification.object;
    MPMovieLoadState loadState = player.loadState;  
if (loadState & MPMovieLoadStatePlaythroughOK) {
        if (!isnan(_curPlayTime) && _curPlayTime > 0.0) {
            [self performSelector:@selector(setCurrentPlayTime:) withObject:[NSNumber numberWithFloat:_curPlayTime] afterDelay:0.1];
            _curPlayTime = 0.0;
        }
}

Когда я просто нажимаю кнопку «Домой», а затем снова открываю приложение, а также, если я получаю входящий звонок, но отклоняю его, оно работает. Но если я отвечаю на входящий вызов, после того, как я закончу вызов, воспроизведение начнется с 0.0, игнорируя вызов метода setCurrentPlaybackTime. Кто-нибудь знает, где проблема и может быть какой-нибудь пример, как это нужно сделать, чтобы работать правильно?

1 Ответ

0 голосов
/ 17 июля 2013

Не уверен, что это проблема, но искатель, который вы ищете, установлен: setCurrentPlayTime, а не setCurrentPlay * back * Time.

...