2010-07-02 62 views
1

我在MPMoviePlayerController中運行了一個介紹電影,並且我分配的內存沒有被釋放。
電影結束時,樂器顯示正在釋放的內存。
但是,當我點擊它跳過電影的內存不釋放。
這裏是我的代碼的重要部分:MPMoviePlayerController沒有發佈

- (void)applicationDidFinishLaunching:(UIApplication *)theApplication { 
self.application = theApplication; 
NSString *urlStr = [[NSBundle mainBundle] pathForResource:@"mymovie.mov" ofType:nil]; 
NSURL *url = [NSURL fileURLWithPath:urlStr]; 
MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url]; 
[window addSubview:moviePlayer.view]; 


moviePlayer.scalingMode = MPMovieScalingModeAspectFit; 
moviePlayer.controlStyle = MPMovieControlStyleNone; 
moviePlayer.view.frame = window.frame; 


UIView *introFrontView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)]; 
introFrontView.userInteractionEnabled = YES; 
introFrontView.opaque = NO; 
introTabRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self 
      action:@selector(introTabFrom:)]; 
[introFrontView addGestureRecognizer:introTabRecognizer]; 
[moviePlayer.view addSubview:introFrontView]; 
[introFrontView release]; 
[introTabRecognizer release]; 
self.moviePlayerController = moviePlayer; 
[moviePlayer release]; 
[[NSNotificationCenter defaultCenter] addObserver:self 
     selector:@selector(introFinished:) 
     name:MPMoviePlayerPlaybackDidFinishNotification 
      object:self.moviePlayerController]; 
[self.moviePlayerController play]; 
} 

- (void)introTabFrom:(UITapGestureRecognizer*)recognizer{ 
[[NSNotificationCenter defaultCenter] postNotificationName:MPMoviePlayerPlaybackDidFinishNotification 
      object:self.moviePlayerController]; 
} 

- (void) introFinished:(NSNotification*)notification { 
[[NSNotificationCenter defaultCenter] removeObserver:self 
     name:MPMoviePlayerPlaybackDidFinishNotification 
      object:self.moviePlayerController]; 
[self.moviePlayerController pause]; 
[self.moviePlayerController stop]; 
[self.moviePlayerController release]; 
... 
} 

有什麼我忘了嗎?
以我的理解我發佈正確的通知...
任何想法?

回答

0

您可能想要註冊MPMoviePlayerPlaybackStateDidChangeNotification,並查看傳入的playbackState。