NavigationController + TabBarController上的视频问题

时间:2011-03-10 16:54:07

标签: objective-c uitabbarcontroller navigationcontroller

我有一个带有TabBarController的应用程序,它包含两个带有NavigationController的TabBars。

在第一个标签栏中,我有一个包含一些按钮的ViewController。其中一个按钮使用户可以播放视频。目前一切运行良好。

我的问题是,当正在播放视频并且我移动到第二个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];  
} 

1 个答案:

答案 0 :(得分:0)

[movie PlayerController pause];

在你进入第二个标签暂停之前。