Программно показать элементы управления в MPMoviePlayerController - PullRequest
8 голосов
/ 31 августа 2011

У меня есть подкласс MPMoviePlayerController, который должен показывать элементы управления после завершения воспроизведения. Я прикрепил ответчик к уведомлению MPMoviePlayerPlaybackDidFinishNotification и попытался установить стиль элемента управления следующим образом:

[self setControlStyle:MPMovieControlStyleEmbedded];

Это не работает. По сути, в конце видео я хочу показать элементы управления. Как я могу показать элементы управления программно?

ПРИМЕЧАНИЕ. Контроллер НЕ находится в полноэкранном режиме.

1 Ответ

0 голосов
/ 15 апреля 2013

Пожалуйста, найдите мой полный Код об этом, он работает со мной

добавьте класс .h добавьте этот

@property(strong,nonatomic) MPMoviePlayerViewController * moviePlayer;

в классе .m добавьте этот код "pass the movie URl"

-(void) playMovie:(NSString *)filePath
{
    NSURL *theOutputURL = [NSURL fileURLWithPath:filePath];
    if(_moviePlayer)
        [_moviePlayer.moviePlayer setContentURL:theOutputURL];
    else
        _moviePlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:theOutputURL];

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

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayerPlaybackStateDidChange:) name:MPMoviePlayerPlaybackStateDidChangeNotification object:_moviePlayer.moviePlayer];

    if (![_moviePlayer.moviePlayer isPreparedToPlay])
        [_moviePlayer.moviePlayer prepareToPlay];

    _moviePlayer.moviePlayer.movieSourceType = MPMovieSourceTypeFile;
    [_moviePlayer.moviePlayer setFullscreen:YES];
    _moviePlayer.moviePlayer.controlStyle=MPMovieControlStyleEmbedded;
    [_moviePlayer.moviePlayer setContentURL:theOutputURL];
    _moviePlayer.view.frame = CGRectMake(0, 0, [[UIScreen mainScreen]bounds].size.width, [[UIScreen mainScreen]bounds].size.height);
    [_moviePlayer shouldAutorotateToInterfaceOrientation: AVCaptureVideoOrientationLandscapeRight];
    [self.view addSubview:_moviePlayer.view];
}


- (void) moviePlayerPlaybackStateDidChange: (NSNotification *) notification {
    if (_moviePlayer.moviePlayer.playbackState == MPMoviePlaybackStateStopped) {
        [_moviePlayer.moviePlayer setContentURL:[_moviePlayer.moviePlayer contentURL]];
        [_moviePlayer.moviePlayer play];
    }
}

-(void)myMovieFinishedCallback:(NSNotification*)aNotification
{
    //  to add your code after playback is finished

}
...