2012-06-11 3 views
0

나는 영화를 재생하기 때문에 MPMoviePlayerController를 사용합니다.MPMoviePlayerController 성능 적중

하나의 질문입니다. MPMoviePlayerController를 만들면 앱이 조금 멈 춥니 다.

NSString *path = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"m4v"]; 
    NSURL *videoURL = [NSURL fileURLWithPath:path]; 

    moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:videoURL]; 
    moviePlayer.scalingMode=MPMovieScalingModeFill; 
    moviePlayer.controlStyle=MPMovieControlStyleNone; 
    moviePlayer.shouldAutoplay=NO; 

    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(movieRestartCallback:) 
               name:MPMoviePlayerPlaybackStateDidChangeNotification 
               object:nil]; 

    [moviePlayer.view setFrame:CGRectMake(20, 20, 280, 200)]; 
    [self.view addSubview:moviePlayer.view]; 

`

이유는 응용 프로그램이 중지 않습니다

이 내 코드? 이 문제 해결 방법이 있습니까?

+0

는 u는 검은 화면이나 단지가 중단 응용 프로그램의 일부 (밀리 초)을 의미? –

+0

빌리에게. 예. 맞습니다! – Osushi

답변

0

멀티 스레딩 기능을 사용할 수 있다고 생각합니다.

NSOperationQueue은 스레드 안전 (잠금을 필요로하지 않고 다른 스레드에서 조작을 추가 할 수 있음)하고 NSOperation 오브젝트를 함께 연결할 수 있습니다.

다음 코드 스냅을 사용하여이를 사용할 수 있습니다.

나는 당신에게 도움이되기를 바랍니다.

1

MPMoviePlayerController의 문서를 보면이 예에서 동영상 플레이어를보기에 추가하기 전에 prepareToPlay이라고 부르는 것을 알 수 있습니다.

플레이어를 설정할 위치에 [mediaPlayer prepareToPlay]을 추가합니다.

MPMediaPlayback Protocol Reference는 말한다 : "당신이 플레이를 호출하기 전에이 메소드를 호출, 재생 지연을 최소화하기 위해"작은 정지와

관련 문제