2

我正在使用此代码来显示电影:

 MPMoviePlayerViewController *mp = [[MPMoviePlayerViewController alloc]
 initWithContentURL:movieURL];
 mp.moviePlayer.movieSourceType = MPMovieSourceTypeUnknown;
 [self presentMoviePlayerViewControllerAnimated:mp]; [mp.moviePlayer play];

代码工作正常。但是,当应用程序在播放电影时进入后台时,当应用程序返回前台时,不会显示电影播放器​​。(我看到调用的控制器的视图presentMoviePlayerViewControllerAnimated:mp

进入前台时是否可以恢复应用程序进入后台之前正在播放的电影?

4

2 回答 2

0

您是否将 UIBackgroundmode 设置为音频,并且在应用程序进入前台后播放视频也存在问题。请参阅 MPMoviePlayerViewController上的本教程您也可以尝试使用 MPMoviePlayerViewController ,它具有实现各种通知的选项。

于 2012-05-12T20:07:49.353 回答
0

您可以实施通知技术来处理它。在正在播放电影播放器​​的类中添加一个通知,并将其关联一个选择器。当应用程序进入后台然后在委托方法中

- (void)applicationDidEnterBackground:(UIApplication *)application

{

// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 

 // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.


    UIApplication *app = [UIApplication sharedApplication];
    UIBackgroundTaskIdentifier bgTask = 0;

    bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
        [app endBackgroundTask:bgTask];
    }];

}

编写此代码。实际上,当应用程序进入后台时,它会暂停 MPMoviePlayerController,因此当它进入前台时,您会发布通知,该通知调用实现电影控制器的类中的方法并在此方法中再次播放。

-(void)playIntroAnimationAgain

{

[[NSNotificationCenter defaultCenter]removeObserver:self name:NOTIFICATION_PlayAgain_Player object:nil];

        [self.moviePlayerController play];

       [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playIntroAnimationAgain)name:NOTIFICATION_PlayAgain_Player object:nil];
}

它解决了我的问题。

于 2013-02-12T07:33:34.080 回答