开发者

MPMoviePlayerController release problem

开发者 https://www.devze.com 2022-12-19 07:55 出处:网络
here is code - (void)applicationDidFinishLaunching:(UIApplication *)application { NSBundle *bundle = [NSBundle mainBundle];

here is code

- (void)applicationDidFinishLaunching:(UIApplication *)application {
  NSBundle *bundle = [NSBundle mainBundle];
 NSString *moviePath = [bundle pathForResource:@"sample_mpeg4" ofType:@"mp4"];
 NSURL *movieURL = [[NSURL fileURLWithPath:moviePath] retain];


 MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:movieURL];
 moviePlayer.movieControlMode =   MPMovieControlModeHidden;

 [moviePlayer play];

 [[NSNotificationCenter defaultCenter] addObserver:self 
 selector:@selector(moviePlaybackDidFinish:) 
 name:MPMoviePlayerPlaybackDidFinishNotification 
 object:nil]; 

 }
- (void) moviePlaybackDidFinish:(NSNotification*)notification
 {

MPMoviePlayerController *theMovie = [notification object];
[[NSNotificationCenter defaultCenter] removeObserver:self                                      name:MPMoviePlayerPlaybackDidFinishNotific开发者_如何学JAVAation
                                              object:theMovie];
[theMovie stop];
[theMovie release];

[window addSubview:tabBarController.view];
[window makeKeyAndVisible];
}

so my problem is my apps memory usage goes additional 3MB , it stays there even after release,does that mean memory does not get released?


Look at your code in

- (void) moviePlaybackDidFinish:(NSNotification*)notification
MPMoviePlayerController *theMovie = [notification object];
[[NSNotificationCenter defaultCenter] removeObserver:self                                      name:MPMoviePlayerPlaybackDidFinishNotification                                             object:theMovie];

Are you sure "theMovie" is your created "moviePlayer"? I believe they are different memory address because you didn't assign a object when you register the notification. Make sure

 [[NSNotificationCenter defaultCenter] addObserver:self 
 selector:@selector(moviePlaybackDidFinish:) 
 name:MPMoviePlayerPlaybackDidFinishNotification 
 object:moviePlayer];

Then try it again.

0

精彩评论

暂无评论...
验证码 换一张
取 消