2

私は映画を表示するためにこのコードを使用しています:

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

コードは正常に機能しています。ただし、映画の再生中にアプリケーションがバックグラウンドに移動した場合、アプリがフォアグラウンドに戻ったときに、ムービープレーヤーは表示されません。(呼び出したコントローラーのビューが表示されますpresentMoviePlayerViewControllerAnimated:mp

フォアグラウンドに入るときに、アプリがバックグラウンドに移行する前に再生していた映画を再開することは可能ですか?

4

2 に答える 2

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 に答える
0

UIBackgroundmode をオーディオに設定し、アプリがフォアグラウンドに入った後にビデオを再生する際にも問題が発生しました。MPMoviePlayerViewController のこのチュートリアルを参照してください。また、さまざまな通知を実装するためのオプションがある MPMoviePlayerViewController を使用してみてください。

于 2012-05-12T20:07:49.353 に答える