видео не воспроизводится с помощью MPMoviePlayerController - PullRequest
1 голос
/ 20 апреля 2011

Я хочу получить общую продолжительность видео в iPhone.Я использую следующий код, чтобы получить длительность

videoPath = [videoPath stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *url = [NSURL URLWithString:videoPath];
MPMoviePlayerController *mpPlayer = [[[MPMoviePlayerController alloc] initWithContentURL:url] autorelease]; 
mpPlayer.view.frame = CGRectMake(0, 0, 320, 100);
[self.view addSubview:mpPlayer.view];
NSLog(@"duration = %f",mpPlayer.duration);
[mpPlayer play];

, но я не знаю, почему я не могу получить длительность видео, также видео не воспроизводится.Может ли кто-нибудь помочь мне найти решение этой проблемы.

Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 20 апреля 2011

Подсказки:

Длительность может быть недоступна до фактического воспроизведения -> проверьте длительность еще раз при получении MPMoviePlayerPlaybackStateDidChangeNotification (MPMoviePlayerController.playbackState == MPMoviePlaybackStatePlaying), чтобы быть в безопасности.

0 голосов
/ 03 сентября 2012
    videoPath = [videoPath stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    NSURL *url = [NSURL URLWithString:videoPath];
    MPMoviePlayerController *mpPlayer = [[[MPMoviePlayerController alloc] initWithContentURL:url] autorelease]; 
    mpPlayer.view.frame = CGRectMake(0, 0, 320, 100);
    [self.view addSubview:mpPlayer.view];
    NSLog(@"duration = %f",mpPlayer.duration);
    [mpPlayer play];

//add notifications


  [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(MPMoviePlayerLoadStateDidChange:) name:MPMoviePlayerLoadStateDidChangeNotification object:nil];

- (void)MPMoviePlayerLoadStateDidChange:(NSNotification *)notification {

    if ((moviePlayer.loadState & MPMovieLoadStatePlaythroughOK) == MPMovieLoadStatePlaythroughOK) {
duration = mpPlayer.duration;
NSLog(@"duration = %f",mpPlayer.duration);
}
}       
0 голосов
/ 20 апреля 2011

Просьба проверить, правильно ли указан путь к видео, и проверить, назначен ли плеер с правильным файлом url

.
...