2012-08-31 3 views
2

MPMoviePlayerViewController를 사용하여 3gp 형식의 비디오를 재생합니다. 일부 비디오는 재생할 수 있지만 다른 비디오는 재생할 수 없습니다. MPMoviePlayerViewController는 비디오가 0 초 기간 인 것처럼 즉시 로딩하여 종료합니다. 나는 영상에 sty 틀림이 있어야한다고 생각했다. 하지만 난 앨범 안에 아이폰의 비디오 플레이어를 사용하여, 그것은 비디오를 재생할 수 있습니다! 그래서 어쩌면 MPMoviePlayerViewController가 powerful.and 내가 비디오를 재생 avfoundation 프레임 워크 avplayer를 사용하려고하지 않는 것 같아요. 내 콘텐츠보기에 하위 레이어를 추가하십시오. 실패했습니다 .. 나를 미치게하는 ! 아무도 어떤 문제를 만났습니까?MPMoviePlayerController가 3gp 형식의 비디오를 재생할 수 없습니다.

여기 내 코드

-(void) playMovieWithSDK: (NSURL*) movieUrl 
{ 
if ([[[UIDevice currentDevice] systemVersion] doubleValue] >= 3.2) { 
    MPMoviePlayerViewController *mSdk4Player = [[MPMoviePlayerViewController alloc] initWithContentURL:movieUrl]; 
    mSdk4Player.navigationController.navigationBar.tag = 1000; 
    if (mSdk4Player) { 
     [self presentMoviePlayerViewControllerAnimated:mSdk4Player]; 
     mSdk4Player.moviePlayer.scalingMode= MPMovieScalingModeAspectFit; 
     mSdk4Player.moviePlayer.movieSourceType = MPMovieSourceTypeFile; 
     mSdk4Player.moviePlayer.shouldAutoplay = YES; 
     [mSdk4Player release]; 

     [[NSNotificationCenter defaultCenter]addObserver: self 
               selector: @selector(movieFinishedCallback:) 
                name: MPMoviePlayerPlaybackDidFinishNotification 
                object: mSdk4Player.moviePlayer]; 
    } 
} 
else if ([[[UIDevice currentDevice] systemVersion] doubleValue] < 3.2) { // sdk 3.0 播放器 
    MPMoviePlayerController* mSdk3player = [[MPMoviePlayerController alloc] initWithContentURL: movieUrl]; 
    mSdk3player.scalingMode = MPMovieScalingModeAspectFit; 
    [[NSNotificationCenter defaultCenter]addObserver: self 
              selector: @selector(movieFinishedCallback:) 
               name: MPMoviePlayerPlaybackDidFinishNotification 
               object: mSdk3player]; 
    [mSdk3player play]; 
    } 
} 

답변

3

당신이 MPMoviePlayerController에서 지원하는 기본 코덱과 호환되지 않을 수 있습니다 재생하려는 동영상입니다. the documentation에 따르면

:

이 클래스는 아이폰 OS에서 지원하는 동영상 또는 오디오 파일을 재생합니다. 여기에는 스트리밍 된 콘텐츠와 고정 길이 파일이 모두 포함됩니다.

  • H.264베이스 라인 프로파일 레벨 3.0 비디오, 최대 : 동영상 파일의 경우, 이것은 일반적으로 확장, .MP4, .mpv, 그리고하고 .3gp 다음과 같은 압축 표준 중 하나를 사용하여 .mov로 사용하여 파일을 의미합니다 640x480, 30fps. 는 (베이스 라인 프로파일은 B 프레임을 지원하지 않습니다.)

  • MPEG-4 파트 2 비디오 (간단한 프로필) 오디오 파일을 재생하려면이 클래스를 사용하는 경우

, 그것은과 흰색 화면을 표시합니다 오디오가 재생되는 동안 QuickTime 로고. 오디오 파일의 경우이 클래스는 최대 48kHz에서 AAC-LC 오디오를 지원하고 스테레오 오디오는 최대 48kHz의 MP3 (MPEG-1 오디오 레이어 3)를 지원합니다.

+1

답변 해 주셔서 감사합니다. 나는 그 문제를 발견했다. 오디오 트랙 형식은 AAC가 아닌 AMR입니다. – Spec