mpmovieplayercontroller 비디오를 두 번째로 재생합니다
-
19-09-2019 - |
문제
앱에서 둘 이상의 비디오를 재생할 가능성이 있어야합니다.
불행히도, 두 번째로 플레이를 누르면 비디오가 깜박 거리는 것처럼 보입니다.
나는 비디오를 재생하기 위해이 코드 만 사용합니다
nsurl *url = [[[nsurl alloc] initfileurlwithpath : [[nsbundle mainbundle] pathforResource :@"movie"oftype :@"m4v"] autoreLease];
mpmovieplayercontroller *mp = [[mpmovieplayercontroller alloc] initwithContentUrl : url];
mp.moviecontrolmode = mpmoviecontrolmodedefault;
MP Play];
영화 플레이어 = MP;
MP 릴리스];
누구든지 문제가 어디에 있는지 말해 줄 수 있습니까? 미리 감사드립니다!
UPDATE 1: 사과처럼 보입니다 영화 플레이어 예는 같은 문제가 있습니다.
해결책
플레이 함수를 호출하기 전에 초기 재생 시간을 -1.0으로 설정하여 수행 할 수도 있습니다.
mp.initialPlaybackTime = -1.0;
재생 방법이 호출되기 전에이 코드를 넣으십시오.
다른 팁
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];
}
유일한 솔루션은 ... 3.1의 앱을 만드는 것입니다.
또한 OS 3.1 이상의 시뮬레이터 버전에서 실행되는 것을 발견합니다. 시뮬레이터가 잘 재생 될 수 있습니다.
initialPlaybackTime = -1.0
OS 3.0에서도 잘 작동합니다.