2017-02-08 10 views
0

나는 내보기의 배경으로 비디오를 재생하고 싶어하고 나는 그런 일했다 :끝없는 비디오 재생 IOS

NSString *pathForFile = [[NSBundle mainBundle] pathForResource:@"clear" ofType:@"mp4"]; 
player = [[MPMoviePlayerController alloc] init]; 
player.shouldAutoplay = YES; 
player.repeatMode = MPMovieRepeatModeNone; 
player.fullscreen = YES; 
player.movieSourceType = MPMovieSourceTypeFile; 
player.scalingMode = MPMovieScalingModeAspectFill; 
player.contentURL =[NSURL fileURLWithPath:pathForFile]; 
player.controlStyle = MPMovieControlStyleNone; 
[player.view setFrame:self.view.bounds]; 
[player.view setUserInteractionEnabled:NO]; 
[player.view setAlpha:0.0f]; 
[self.view addSubview:player.view]; 
[self.view sendSubviewToBack:player.view]; 
[player prepareToPlay]; 

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(moviePlayerDidFinish:) 
              name:MPMoviePlayerPlaybackDidFinishNotification 
              object:player]; 

- (void)moviePlayerDidFinish:(NSNotification *)note { 
if (note.object == player) { 
    NSInteger reason = [[note.userInfo objectForKey:@"MPMoviePlayerPlaybackDidFinishReasonUserInfoKey"] integerValue]; 
    if (reason == MPMovieFinishReasonPlaybackEnded) { 
     [player play]; 
    } 
} 

내 메소드를 호출 할 때마다 비디오 종료 , 플레이어는 비디오를 다시 재생하지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

미리 감사드립니다.

+0

[player seekToTime : kCMTimeZero]; if (reason == MPMovieFinishReasonPlaybackEnded) {} ​​조건에서이 라인을 사용하십시오. –

답변

0
- (void)moviePlayerDidFinish:(NSNotification *)note { 
    if (note.object == player) { 
     NSInteger reason = [[note.userInfo objectForKey:@"MPMoviePlayerPlaybackDidFinishReasonUserInfoKey"] integerValue]; 
     if (reason == MPMovieFinishReasonPlaybackEnded) { 
      player.seekToTime[kCMTimeZero]; 
      // you must have to give time to start video again so use seekToTime 
      [player play]; 
     } 
    } 
} 
+0

일부 루프 후에 재생이 멈 춥니 다. @himanshu –

+0

재생 횟수는 얼마입니까? @AlexChekel –

+1

@AlexChekel 귀하의 솔루션에 대한 또 다른 옵션은 AVPlayerLooper –