Ich habe ein Problem mit MPMoviePlayerViewController auf iPad iOS 4.2. Eine Anwendung gibt ein Video wieder, aber wenn das Video stoppt, wird der Speicher nicht freigegeben. Um einen Video-Player ich den folgenden Code verwenden, zu erstellen:MPMoviePlayerViewController Speicherproblem
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];
und es besteht der movieFinishedCallback: Code-Methode:
- (void) movieFinishedCallback:(NSNotification*) aNotification {
MPMoviePlayerController *player = [aNotification object];
[[NSNotificationCenter defaultCenter] removeObserver:self
name:MPMoviePlayerPlaybackDidFinishNotification
object:player];
[player.view removeFromSuperview];
[player release];
player = nil;
}
mir jemand dabei helfen kann? Ich habe viele Themen zu diesem Problem gelesen, aber keine Lösung gefunden.
Dies wird Ihre Frage nicht beantworten, aber es gibt einen Fehler in Ihrem Code - die Zeile, die 'player release' lautet, sollte' self.videoPlayerController = nil' sein. Andernfalls lasse ich den Player los, behalte aber einen Zeiger darauf (sehr schlecht!) – deanWombourne