MPMoviePlayerController воспроизводит только первый раз, третий раз, пятый ... и так далее - PullRequest
0 голосов
/ 02 апреля 2012

Привет всем, у меня странное поведение с MPMoviePlayerController

время, когда я играю видео, оно работает ... вечера нет!

как сказано здесь MPMoviePlayerController будет проигрываться один раз, а затем выдавать ошибку проблема может быть в URL, но я не могу найти решение ..

Вот мой код

NSURL *myUrl = [[NSURL alloc] initWithString:CDNRequest];

    moviecontroller = [[MMRMovieViewController alloc] initWithContentURL:myUrl];

    [[moviecontroller moviePlayer] setScalingMode:MPMovieScalingModeAspectFit];
    [[NSNotificationCenter defaultCenter] addObserver:self 
                                             selector:@selector(playbackFinished:) 
                                                 name:MPMoviePlayerPlaybackDidFinishNotification object:[moviecontroller moviePlayer]];
    [self moviecontroller]; 

MMRMovieViewController - это контроллер представления, который просто расширяет MPMoviePlayerViewController. а вот и метод playFinished

- (void)playbackFinished:(NSNotification*)notification {
MPMoviePlayerController *moviePlayer = [notification object];
NSNumber* reason = [[notification userInfo] objectForKey:MPMoviePlayerPlaybackDidFinishReasonUserInfoKey];
switch ([reason intValue]) {
    case MPMovieFinishReasonPlaybackEnded:
        [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
        NSLog(@"playback ended");
        break;
    case MPMovieFinishReasonPlaybackError:
        [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
        NSLog(@"playback error");
        NSError* error = [[notification userInfo] valueForKey:@"error"];
        NSLog(@"error=%@", error);

        break;
    case MPMovieFinishReasonUserExited:
        [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
        NSLog(@"user exited");
        break;
    default:
        [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
        break;
}
if (moviePlayer == TRUE) {
    [moviePlayer setFullscreen:NO animated:YES];
}

[moviePlayer stop];
[moviePlayer removeFromSuperview];
moviePlayer = nil;
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
}

В журнале ошибок указано: «rror =» Error Domain = MediaPlayerErrorDomain Code = -12847 \ "Этот формат фильма не поддерживается. \" UserInfo = 0x5b60030 {NSLocalizedDescription = Этот формат фильма не поддерживается.} " Но иногда это идет! так что это не может быть причиной!

Любая помощь приветствуется!

Спасибо!

1 Ответ

0 голосов
/ 03 апреля 2012

Это, безусловно, проблема с потоком.

Параметры:

  • Формат видео несовместим - вы исключаете это из правила

  • Настройка сервера доставки видео неисправна - вы должны использовать Charles или аналогичный HTTP-прокси для анализа трафика

Чтобы исключить любые проблемы с вашим собственным кодом, попробуйте ввестиURL-адрес потока в мобильном браузере Safari.Если это не удается воспроизвести, то это не проблема, связанная с клиентом / кодом.

...