문제

아시다시피, MPMoviePlayerController로 동영상을 재생할 때 MoviePlayer는 MoviPlayer의 중심의 ActivityIndicatorView를 표시해야합니다.이제 내 프로그램에서 사용자 정의 ActivityIndicatorView를 넣었습니다. MPMoviePlayController의 ActiveIndicatorView를 숨기거나 제거하고 싶습니다.

도움이 되었습니까?

해결책

예, 우리는 할 수 있습니다!

나는 당신이하고 싶은 것이 당신의 영화가로드되는 동안 동영상이로드되는 동안 활동 이상자가 표시되는 것으로 추측하는 것으로 추측하는 것 같아요? 나는 그저 그것을 계속 생각하고 계속 ...

SDK 3.2 이상에서 전체 MPMoviePlayerController (및 MPMoviePlayerViewController)는 이전 버전보다 훨씬 낫습니다. MPMoviePlayerController를 사용하는 경우 MPMoviePlayerViewController (기본적으로 MPMoviePlayerController 객체를 캡슐화하는 UIView 하위 클래스)로 전환하는 것이 좋습니다.

어쨌든 UIActivityIndicator보기를 표시하고 숨기려면 Load- 또는 PlayStatus가 변경되면 MPMoviePlayerController에서 전송되는 알림에 연결하는 것이 좋습니다.

이들 중 일부는 다음과 같습니다.

MPMoviePlayerPlaybackStateDidChangeNotification
MPMoviePlayerLoadStateDidChangeNotification 
.

이 이벤트에 연결됩니다.

[[NSNotificationCenter defaultCenter] addObserver: self 
                                             selector: @selector(loadStateChanged:) 
                                                 name: MPMoviePlayerLoadStateDidChangeNotification 
                                               object: moviePlayerViewController.moviePlayer];
.

및이

[[NSNotificationCenter defaultCenter] addObserver: self 
                                             selector: @selector(playBackStateChanged:) 
                                                 name: MPMoviePlayerPlaybackStateDidChangeNotification 
                                               object: moviePlayerViewController.moviePlayer];
.

및 핸들러 내에서 (playBackStateChangedloadStateChanged)

다음과 같이 할 수 있습니다 :

-(void)playBackStateChanged:(id)sender
{
    MPMoviePlaybackState playbackState = [moviePlayerViewController.moviePlayer playbackState];

    switch (playbackState) {

        case MPMoviePlaybackStateStopped :


            break;

        case MPMoviePlaybackStatePlaying :
            [yourActivityIndicatorView stopAnimating];
            break;

        case MPMoviePlaybackStateInterrupted :
            [yourActivityIndicatorView startAnimating];
            break;
    }
}
.

indicatorView의 "hotewhenstopped"(또는 이와 유사한) 속성이 예로 설정되었는지 확인하십시오 (그렇게하는 경우, 컨트롤을 숨기고 숨겨주세요.

나머지는 간단하고 MPMovieviewController의보기의 ActivityIndicatorView OnTop을 추가하십시오.

내가 도울 수 있기를 바랍니다 환호

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top