【发布时间】:2010-10-04 17:36:51
【问题描述】:
我的电影播放器仅在 iPad 上且仅在单击“完成”按钮时才会泄漏内存。如果电影播放完成,那么它会正确清理自己。下面是播放代码:
mViewPlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:[self movieURL:@"mymovie"]];
[self.parentViewController presentModalViewController:mViewPlayer animated:YES];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(exitedFullscreen:) name:MPMoviePlayerPlaybackDidFinishNotification object:[mViewPlayer moviePlayer]];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(exitedFullscreen:) name:MPMoviePlayerDidExitFullscreenNotification object:[mViewPlayer moviePlayer]];
这里是清理代码:
- (void)exitedFullscreen:(NSNotification*)aNotification
{
MPMoviePlayerController *player = [aNotification object];
[[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:player];
[[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerDidExitFullscreenNotification object:player];
[self.parentViewController dismissModalViewControllerAnimated:YES];
NSLog(@"retainCount theMovie: %i", [mViewPlayer retainCount]);
player.initialPlaybackTime = -1;
[player pause];
[player stop];
NSLog(@"retainCount theMovie: %i", [mViewPlayer retainCount]);
[player release];
player = nil;
// [mViewPlayer release];
mViewPlayer = nil;
}
retainCount 在上面打印的两次都是 3,并且在影片正常完成或单击“完成”按钮时相同。
我也尝试过使用 MPMoviePlayerController 并获得相同的结果。我尝试过使用准备好的播放和 10 种不同的方法来调用 MPMoviePlayer*Controller,但是当我单击完成按钮时它总是会泄漏。
任何帮助将不胜感激。谢谢。
【问题讨论】:
标签: ipad memory mpmovieplayercontroller memory-leaks mpmovieplayer