2011-01-02 6 views
12

사전에 도움을 주셔서 감사합니다. 나는 초보자이며 여기에 어떤 도움을 주셔서 감사합니다. 나는이 코드를 가지고 영화를 볼 수 있습니다. 누군가이 영화 루프를 만들고 처음부터 다시 재생하는 법을 알려주십시오 (모든 코드가 도움이 될 것입니다). 또한 2 개의 영화를 하나씩 다른 방법으로 재생하는 방법을 알고 싶습니다. 페이드 또는 부드러운 전환이 바람직합니다. 당신이 당신의 슬라이더의 값을 가지고있는 int 변수를 만든 다음 performSelector afterDelay를 사용할 수있는 타이머에 대한 MPMoviePlayerControllerMPMovieRepeatModeOneMPMoviePlayerController : 비디오 루프를 만들려면 어떻게해야합니까?

player = [[MPMoviePlayerViewController alloc] 
      initWithContentURL:[NSURL fileURLWithPath:path]]; 
player.moviePlayer.repeatMode = MPMovieRepeatModeOne; 
+0

이 코드 다음의 형식을하시기 바랍니다 : MPMovieRepeatModeNone에 모드는 그런 영화가 재생이 끝나면 필터링하여 선택기를 설정 알림

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

를 추가합니다. –

답변

23

주셔서 감사합니다 :

당신의 "MyMethod라는"

에서 다음
int delayInt = 8; // Substitute the 8 for the value of your slider 
[self performSelector:@selector(myMethod) withObject:nil afterDelay:delayInt]; 

그리고

-(void) myMethod{ 
//the code to stop your player and remove view controller 
} 
+0

나는 이제 다음과 같은 라인 오류가 발생했다 : player.repeatMode = MPMovieRepeatModeOne; >>>> 'repeatMode'멤버에 대한 요청은 구조체 또는 합집합이 아닙니다 .- <<<< 우리가 가깝다고 생각합니다 ... 도와 줄 수 있습니까? –

+0

@Jay L 지금 내 대답을 시험해보십시오. 제대로 작동 할 것입니다. –

+0

굉장합니다. 훌륭한 작품입니다. 좋아, 한 번 더 질문. 내 영화에 타이머를 추가 할 수 있어야합니다. 즉 .. 정해진 시간 후에 멈추게하십시오. 나는 그것을 위해 슬라이더를 사용하고 싶습니다. 어떤 아이디어를 추가할까요? –

1

repeatMode 속성을 설정 도움

#import "MyAppViewController.h" 

@implementation MyAppViewController 

-(IBAction)button:(id)sender{ 
NSString *path = [[NSBundle mainBundle] 
     pathForResource:@"mymovie" ofType:@"mp4"]; 

player = [[MPMoviePlayerViewController alloc] 
    initWithContentURL:[NSURL fileURLWithPath:path]]; 

[self presentMoviePlayerViewControllerAnimated:player]; 

} 
20

MPMovieRepeatModeOne은 훌륭하지만 비디오를 매우 부드럽게 반복하지 않습니다. 아래의이 시도 (다른 게시물에서 복사) : 동영상 플레이어를 설정할 때 (. 난 그냥 내 아이 패드 3를 실행 아이폰 OS 5.1.1에서이 작업을 가지고, 기본 SDK 아이폰 OS 5.1)

, 반복 설정

- (void)moviePlayerDidFinish:(NSNotification *)note 
{ 
    if (note.object == self.moviePlayer) { 
     NSInteger reason = [[note.userInfo objectForKey:MPMoviePlayerPlaybackDidFinishReasonUserInfoKey] integerValue]; 
     if (reason == MPMovieFinishReasonPlaybackEnded) 
     { 
      [self.moviePlayer play]; 
     } 
    } 
} 
+2

이상한 일은 시뮬레이터에서 훌륭하게 작동했지만 실제 전화로 시도 할 때 가끔씩 반복되어 가끔씩 멈추었습니다. 나는 경주 조건 (실제로 영화가 아직 완전히 끝나지 않았을 때 연극이 불리는 곳)을 의심했다. NSTimer를 추가하여 play 메소드의 호출을 지연 시켰지만 실제로는 반복적으로 실행되었지만 (결국 hickup으로) 최적이 아닙니다. 아마도 .mp4 파일의 코덱 때문일 수 있습니다. – morksinaanab

+0

다음을 사용하는 것이 좋습니다. [self.moviePlayer prepareToPlay]; 이렇게하면 비디오를 최적화하고 원하지 않는 렌더링 문제를 제거하는 데 도움이됩니다. –

+0

더 이상 iOS8 +에서 작동하지 않습니다. 간격은 repeatMode를 .One로 설정하는 것과 같습니다. – Mike

관련 문제