У меня проблема с MPMoviePlayerViewController на iPad iOS 4.2. Приложение воспроизводит видео, но когда видео останавливается, память не освобождается. Чтобы создать видеопроигрыватель я использую следующий код:Проблема памяти MPMoviePlayerViewController
MPMoviePlayerViewController * videoPlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:articleUrl];
[videoPlayer moviePlayer].movieSourceType = MPMovieSourceTypeFile;
[videoPlayer moviePlayer].controlStyle = MPMovieControlStyleDefault;
[videoPlayer moviePlayer].scalingMode = MPMovieScalingModeAspectFit;
[videoPlayer moviePlayer].fullscreen = NO;
self.playerViewController = videoPlayer;
[videoPlayer release];
videoPlayer = nil;
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(movieFinishedCallback:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:[playerViewController moviePlayer]];
MPMoviePlayerController *player = [playerViewController moviePlayer];
CGRect playerFrame = CGRectMake(20, 20, self.view.frame.size.width - 40, self.view.frame.size.height - 40);
player.view.frame = playerFrame;
[self.view addSubview:player.view];
[player play];
и есть movieFinishedCallback: метод Код:
- (void) movieFinishedCallback:(NSNotification*) aNotification {
MPMoviePlayerController *player = [aNotification object];
[[NSNotificationCenter defaultCenter] removeObserver:self
name:MPMoviePlayerPlaybackDidFinishNotification
object:player];
[player.view removeFromSuperview];
[player release];
player = nil;
}
Может кто-нибудь помочь мне с этим? Я прочитал много тем, связанных с этой проблемой, но не нашел решения.
Это не ответит на ваш вопрос, но в вашем коде есть ошибка - строка, в которой говорится, что `player release` должна быть` self.videoPlayerController = nil`. В противном случае, вы освобождаете игрока, но сохраняете указатель на него (очень плохо!) – deanWombourne 2010-12-16 16:53:13