Я хотел бы предварительно загрузить мой MPMoviePlayerController, проблема в том, что MPMoviePlayerController занимает слишком много времени, чтобы подготовиться, чтобы отображать значок загрузки, тогда отображается видео, если я играю другое видео после того, как он воспроизводится напрямую, а не первый раз ... :(Как предварительно загрузить фильм перед его воспроизведением (MPMoviePlayerController)
я знаю, что это: MPMoviePlayerLoadStateDidChangeNotification но я не знаю, как это работает на самом деле
Это мой код:.
- (void) startSlideShow:(NSString *)nameFile
{
NSURL *url = [NSURL fileURLWithPath:nameFile];
MPMoviePlayerController *moviePlayer =
[[MPMoviePlayerController alloc] initWithContentURL:url];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(moviePlayBackDidFinish:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:moviePlayer];
moviePlayer.view.frame = CGRectMake(0, 0, 768, 1024);
moviePlayer.controlStyle = MPMovieControlStyleDefault;
[self.view addSubview:moviePlayer.view];
CATransition *animation = [CATransition animation];
[animation setDuration:0.5];
[animation setType:kCATransitionFade];
[animation setSubtype:kCATransitionFromLeft];
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
[[self.view layer] addAnimation:animation forKey:@"SwitchToView1"];
[moviePlayer setFullscreen:YES animated:YES];
}
-(void)moviePlayBackDidFinish: (NSNotification*)notification
{
MPMoviePlayerController *moviePlayer = [notification object];
[[NSNotificationCenter defaultCenter] removeObserver:self
name:MPMoviePlayerPlaybackDidFinishNotification
object:moviePlayer];
if ([moviePlayer respondsToSelector:@selector(setFullscreen:animated:)])
{
[moviePlayer.view removeFromSuperview];
}
[self checkResources];
}
идеально это вид работы, но, по крайней мере, я не значок загрузки :) – user1256827
Но есть еще несколько секунд загрузки (даже если мы не видим значок загрузки), как я могу заставить его начать прямо ... наконец, почему это занимает время на первом видео? потому что он инициализирует MPMoviePlayerController, а другим не нужно его инициализировать или что? : s – user1256827
Вы можете использовать UIActivityIndicatorView в качестве значка загрузки до появления видео. – erkanyildiz