NavigationControllerを備えた2つのTabBarを含むTabBarControllerを備えたアプリケーションがあります。
最初のタブバーには、いくつかのボタンを含むViewControllerがあります。これらのボタンの1つを使用すると、ユーザーはビデオを再生できます。そして、今のところすべてが正常に実行されます。
私の問題は、ビデオが再生されているときに2番目のTabBarに移動すると、ビデオの再生が続行され(音が聞こえます)、最初のTabBar(ボタンがある場所)に戻ると、アプリケーションが何もせずにクラッシュすることです。お知らせ。
それがメモリの問題なのか、それとも何か他のものなのかわかりません。
助言がありますか?
使用される関数は次のとおりです。
-(IBAction)playMovie:(id)sender
{
videoView = [[UIViewController alloc]initWithNibName:@"video" bundle:nil];
videoView.title = @"title";
NSString *urlStr = [[NSBundle mainBundle] pathForResource:@"video.mp4" ofType:nil];
NSURL *url = [NSURL fileURLWithPath:urlStr];
moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:url];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(moviePlaybackComplete:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:moviePlayerController];
testbtnAppDelegate *appDelegate = (testbtnAppDelegate *)[[UIApplication sharedApplication] delegate];
videoView.view=moviePlayerController.view;
[moviePlayerController play];
[appDelegate.navController pushViewController:videoView animated:YES];
}
- (void)moviePlaybackComplete:(NSNotification *)notification
{
moviePlayerController = [notification object];
[[NSNotificationCenter defaultCenter] removeObserver:self
name:MPMoviePlayerPlaybackDidFinishNotification
object:moviePlayerController];
[moviePlayerController.view removeFromSuperview];
[moviePlayerController release];
}