0

ビューと 4 つのボタンで構成される非常にシンプルな iOS iPad アプリを作成しています。したがって、基本的にはストーリーボードにあります。

->ViewController
  ->View (this is added just for alignment and position sake, nothing else)
    ->View
      ->Button1
      ->Button2
      ->Button3
      ->Button4

ボタンを押すと、4 つのボタンすべてで同じように、フルスクリーン モードでムービーが再生されます。ムービーが終了したか、ユーザーが「完了」を押したために、ムービーが終了すると、

[moviePlayer.view removeFromSuperview]を使用してムービーを削除すると、すべてがアプリの初期状態に戻り、4 つのボタンが表示されます。

これは、ボタンが押されたときにムービーを再生するコードです

- (void) playMovie:(NSString *)fileName
            ofType:(NSString *)fileType
{

    NSString *filePath=[[NSBundle mainBundle] pathForResource:fileName ofType:fileType];

    NSURL *fileUrl=[NSURL fileURLWithPath:filePath];

    self.moviePlayer=[[MPMoviePlayerController alloc] initWithContentURL:fileUrl];
    [self.view addSubview:self.moviePlayer.view];
    self.moviePlayer.fullscreen = YES;


    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(moviePlayBackDidFinish:)
                                                 name:MPMoviePlayerPlaybackDidFinishNotification
                                               object:self.moviePlayer];

    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(moviePlayBackDidFinish:)
                                                 name:MPMoviePlayerWillExitFullscreenNotification
                                               object:self.moviePlayer];

    [self.moviePlayer prepareToPlay];
    [self.moviePlayer play];

}

そして、これは私が映画を停止して削除するために使用するコードです:

    - (void) moviePlayBackDidFinish:(NSNotification*)notification
{
    MPMoviePlayerController *player = [notification object];
    [[NSNotificationCenter defaultCenter] removeObserver:self
                                                    name:MPMoviePlayerPlaybackDidFinishNotification
                                                  object:player];

    [[NSNotificationCenter defaultCenter] removeObserver:self
                                                    name:MPMoviePlayerWillExitFullscreenNotification
                                                  object:player];

    if ([player respondsToSelector:@selector(setFullscreen:animated:)])
    {
        [player stop];
        [player setFullscreen:NO animated:YES];
        [player.view removeFromSuperview];
    }

}

私が遭遇する問題は、これが実行された後、背景画像がなく(黒くなる)、どのボタンからも応答がない[player.view removeFromSuperview];初期ビューに戻ることです。

ボタンを含むビューを削除し、ボタンをメイン ビューに追加すると、期待どおりに機能します。

これが明確でない場合は申し訳ありませんが、私は本や多くのウェブサイトを調べてきましたが、これを理解することができないようです.

乾杯!

4

2 に答える 2