0

Как отобразить записанное видео как повторяющееся как число «an'n», например, в приложении Vine.repeatmode не работает в MPMoviePlayerViewController?

Здесь я использую MPMoviePlayerViewController и отлично отображает записанное видео. Но проблема в том, что она не повторяется.

Здесь используете код,

NSURL *url = [NSURL fileURLWithPath:videoPath]; 
playerController = [[MPMoviePlayerViewController alloc] initWithContentURL:url]; 

[self presentMoviePlayerViewControllerAnimated:playerController]; 
[playerController.moviePlayer prepareToPlay]; 

playerController.view.frame = CGRectMake(200, 402, 300, 200); 
playerController.moviePlayer.movieSourceType = MPMovieSourceTypeFile; 
playerController.moviePlayer.controlStyle = MPMovieControlStyleNone; 
playerController.moviePlayer.scalingMode = MPMovieScalingModeAspectFill; 
playerController.moviePlayer.repeatMode = MPMovieRepeatModeOne; 
[self.view addSubview: playerController.view]; 
[playerController.moviePlayer play]; 

NSLog(@"repeatMode: %d",playerController.moviePlayer.repeatMode); 
[playerController.view addSubview:customview]; 


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

И код NSNotification,

- (void) movieFinishedCallback:(NSNotification*) aNotification 
{ 
    NSLog(@"myMovieFinishedCallback: %@", aNotification); 
    MPMoviePlayerController *movieController = aNotification.object; 
    NSLog(@"player.playbackState = %d", movieController.playbackState); 
} 

Может кто-нибудь пожалуйста, дайте решение ..

Примечание: Я использую Инструмент XCode 4.5.2 и ios simulater 6.0

+0

Кто-нибудь дает предложение о том, как отображать видео как в формате повтора? – raman

+0

Я вижу сообщение, где вы его нашли, и я не знаю решения. Я не вижу, как просто регистрация состояния mp поможет. Я предполагаю, что первое, что я попробую, это [movieController prepareToPlay] или [остановка MovieController], чтобы сбросить воспроизведение, затем [movieController play]. Но я действительно не уверен. – danh

+0

@raman: взгляните на мой ответ, надеюсь, это поможет вам достичь вашего результата. –

ответ

0

вы можете попробовать этот код

-(void) movieFinishedCallback:(NSNotification *) aNotification 
{ 
    if (aNotification.object == self.moviePlayer) { 
     NSInteger reason = [[aNotification.userInfo objectForKey:MPMoviePlayerPlaybackDidFinishReasonUserInfoKey] integerValue]; 
     if (reason == MPMovieFinishReasonPlaybackEnded) 
     { 
      [playerController play]; 
     } 
    } 
} 
1

Пробуйте этот код. Это работает.

NSURL *fileUrl = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"Video" ofType:@"mp4"]]; 
    MPMoviePlayerViewController *moviePlayerController = [[MPMoviePlayerViewController alloc]initWithContentURL:fileUrl]; 
    [moviePlayerController.moviePlayer prepareToPlay]; 
    [moviePlayerController.moviePlayer setRepeatMode:MPMovieRepeatModeOne]; 
    [moviePlayerController.moviePlayer setControlStyle:MPMovieControlStyleEmbedded]; 
    [self.view addSubview:moviePlayerController.view]; 
0

Вы должны сохранить объект MPMoviePlayerController в качестве члена, в противном случае приложение потеряет контекст к нему, и фильм не будет повторяться.

Смежные вопросы