2013-08-21 2 views
1

MPMoviePlayerViewController을 사용하여 동영상을 재생하고 있습니다.MPMoviePlayerViewController 반복 횟수

동영상이 반복 재생 될 수 있도록 MPMovieRepeatModeOne과 같은 반복 모드가 있습니다.

재생 된 비디오의 반복 횟수를 얻는 데 사용할 수있는 방법이 있습니까?

당신은 통지 추가 할 수 있습니다
+0

답변을 얻었습니까? – Chandu

+0

AVPlayerViewController를 살펴보십시오. iOS10에 도입 된 새로운 클래스 AVPlayerLooper 덕분에 문제에 대한 해결책을 찾을 수 있기 때문입니다. –

답변

1

:

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(introMovieFinished:) 
              name:MPMoviePlayerPlaybackDidFinishNotification 
              object:self.moviePlayerController]; 

을 그리고 비디오 루프 완료되면 다음 검출이 알림을 사용 : 제가 알기로

- (void)introMovieFinished:(NSNotification *)notification 
{ 
    if (notification.object == self.moviePlayerController) { 
     NSInteger reason = [[notification.userInfo objectForKey:MPMoviePlayerPlaybackDidFinishReasonUserInfoKey] integerValue]; 
     if (reason == MPMovieFinishReasonPlaybackEnded) 
     { 
      NSLog(@"Video has looped!"); 
     } 
    } 
} 
1

, 당신은 반복 모드로 MPMoviePlayerPlaybackDidFinishNotification을 사용할 수 없습니다를 왜냐하면 당신이 그것을 반복하지 않으면 비디오에서 벗어난 경우에만 트리거되기 때문입니다.

반복 모드를 사용하면 상태 변경 만 가능합니다 (= 이전 동영상 종료) ... 일시 중지 (이전 동영상) ... PLAY (새 동영상 시작)] MPMoviePlayerPlaybackStateDidChangeNotification 덕분에 감지되었지만 didFinishNotification은 루프에 포함되지 않습니다.

첫눈에서

, 당신은 예를 들어이 패턴을 따라 플레이어의 이전 상태를 저장해야합니다 :

  1. [stateCurrentTime (PLAY)]> (playingDuration - 1 초) 비디오의 ==> 끝

  2. [stateCurrentTime (일시 중지됨)] < 0.5 초 ==> 전 새로운 비디오

  3. [stateCurrentTime (PLAY)] 사이의 과도 상태 < 1 초 ==> 새 동영상의 시작.

... 그리고 누군가가 MPMoviePlayerPlaybackDidFinishNotification을 사용하는 방법을 찾는 데 성공하면이 통지의 동작이 반복 모드와 함께 이동하지 않기 때문에, 나는 거기에 확실히 관심이있을 수 있습니다.