0

通知センターを使用して MPMoviePlayerPlaybackDidFinishNotification を受信して​​いますが、これは期待どおりに機能します。

   NSURL * url = [[NSURL alloc] initWithString:@"http://INFINITECREATIVEUNIVERSE.COM/Media/module_1_Dec/c_January27AffactPerfect.mov"];

    moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url];

    [moviePlayer.view setFrame:CGRectMake(0, 0, 500, 260)];

    [self.view addSubview:moviePlayer.view];

    //Some addiontal customization
    moviePlayer.fullscreen = YES;
    moviePlayer.allowsAirPlay = YES;
    moviePlayer.shouldAutoplay = YES;
    moviePlayer.controlStyle = MPMovieControlStyleEmbedded;
    //moviePlayer.endPlaybackTime = NO;
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(playMovieFinished:)
                                                 name:MPMoviePlayerPlaybackDidFinishNotification
                                               object:moviePlayer];

セレクターは、私がやりたいことを行います。

-(void)playMovieFinished:(NSNotification*)theNotification
{
    [[NSNotificationCenter defaultCenter]
     removeObserver:self
     name:MPMoviePlayerPlaybackDidFinishNotification
     object:moviePlayer];
    //                     Change Segue ID Here    

    [self  performSegueWithIdentifier:@"VC_5" sender:self];
}

ビデオの再生中に [次へ] ボタンをクリックすると、問題が発生します。次の ViewController が表示されると、ビデオは表示されず、前の ViewController からのオーディオを聞くことができます。

私の質問は、View Controller と MPMoviePlayer を適切に閉じるにはどうすればよいかということです。迷っています。サンプルの MoviePlayer プロジェクトを Apple からダウンロードしましたが、現在は推奨されておらず、正しく動作しません。これを機能させる方法がわかりません。私は質問を正しくしたと指を交差させています。初歩的な質問をお許しください。ありがとうロバート

4

1 に答える 1

0

このコードを使用してください

-(void)playMovieFinished:(NSNotification*)theNotification
{
    [[NSNotificationCenter defaultCenter]
     removeObserver:self
     name:MPMoviePlayerPlaybackDidFinishNotification
     object:moviePlayer];
    [moviePlayer stop];
    // Change Segue ID Here    

    [self  performSegueWithIdentifier:@"VC_5" sender:self];
}
于 2013-09-06T04:57:55.593 に答える