2010-01-11 5 views
3

앱에서 두 개 이상의 동영상을 재생할 수 있어야합니다.MPMoviePlayerController 동영상을 다시 재생하십시오.

두 번째로 재생을 누르면 비디오가 깜박입니다. [[NSBundle mainBundle] pathForResource : "영화"ofType @ : "M4V"@]] 오토 릴리즈

나는

NSURL * URL = [[[NSURL의 ALLOC] initFileURLWithPath 보라 재생 만이 코드를 사용 ];

MPMoviePlayerController * mp = [[MPMoviePlayerController alloc] initWithContentURL : url];

mp.movieControlMode = MPMovieControlModeDefault;

[mp 재생];

moviePlayer = mp;

[mp 방출];

어디에서 문제가 발생할 수 있는지 알려주실 수 있습니까? 미리 감사드립니다.

업데이트 1 : Apple MoviePlayer 예제에는 동일한 문제가있는 것으로 보입니다.

답변

4

당신은 또한을 호출하기 전에 -1.0로 초기 재생 시간을 설정하여 그것을 할 수 있습니다 재생 기능

mp.initialPlaybackTime = -1.0; 

ur 재생 방법이 호출되기 전에이 코드를 입력하십시오.

1

이 문제는 MPMoviePlayerController가 재생을 마친 후 콜백을 실행하기 위해 알림 시스템을 사용하고 거기에서 플레이어 개체를 릴리스함으로써 해결되었습니다.

당신이 영화를 재생하기 전에 알림을 추가

NSURL *url = [[[NSURL alloc]initFileURLWithPath:[[NSBundle mainBundle]pathForResource:@"Movie" ofType:@"m4v"]] autorelease]; 

MPMoviePlayerController *mp = [[MPMoviePlayerController alloc]initWithContentURL:url]; 

mp.movieControlMode = MPMovieControlModeDefault; 

//***Add this line*** 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myMovieFinished:) name:MPMoviePlayerPlaybackDidFinishNotification object:mp]; 

[mp play]; 

그런 다음 콜백 메소드를 추가를

-(void)myMovieFinished:(NSNotification*)aNotification 
{ 
    MPMoviePlayerController *moviePlayer = [aNotification object]; 
    [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerDidFinishNotification object:moviePlayer]; 
    [moviePlayer release]; 
} 
+0

여전히 동일한 문제가 있습니다. – mxg

+0

원본 movieplayercontroller가 어딘가에 유지되지 않습니까? –

0

이 well.It은 blinking.But를 표시하지 않습니다 나는 또한 OS 3.1 또는 재생할 수있는 시뮬레이터의 이후 버전에서 실행 찾을 3.1

0

에 대한 응용 프로그램을 만들기 위해 ... 유일한 해결책이 솔기 추가 할 때

initialPlaybackTime = -1.0 

OS 3.0에서도 잘 재생됩니다.

관련 문제