10

タイトルの言い方がよくないかもしれませんが、再生が終わった後、NSNotification が映画のビューを閉じていないと言ったほうが正しいかもしれません。この問題を抱えている他の人を見つけましたが、解決策はありません。私が実行している iOS 6 に問題があるようです。

ビデオの再生が完了したら、「完了」を押して閉じる必要がありますが、これが整理されたら MPMovieControlStyleNone を使用するため、自動的に閉じたいと思います。未使用のセクションを取り除いた私のコードは次のとおりです。

#import "MovieViewController.h"

@interface MovieViewController ()

@end

@implementation MovieViewController

@synthesize moviePlayer = _moviePlayer;

- (IBAction)playMovie:(id)sender
{
    NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle]
                                         pathForResource:@"TestMovie" ofType:@"mov"]];
    _moviePlayer =
    [[MPMoviePlayerController alloc]
     initWithContentURL:url];

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

    _moviePlayer.controlStyle = MPMovieControlStyleDefault;
    _moviePlayer.shouldAutoplay = YES;
    [self.view addSubview:_moviePlayer.view];
    [_moviePlayer setFullscreen:YES animated:NO];
}

- (void) moviePlayBackDidFinish:(NSNotification*)notification {

    MPMoviePlayerController *player = [notification object];

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

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

@end`
4

1 に答える 1

18

この問題もありましたmoviePlayBackDidFinishで修正するには、追加するだけです

player.fullscreen = NO;

スーパービューからビューを削除する前

于 2012-10-11T18:14:44.433 に答える