2013-01-09 4 views
1

그냥 주 번들에있는 비디오 파일을로드하고 싶습니다.이 코드는 매우 단순하지만 다음과 같은 코드가 있습니다. 어떤 이유로 든 MPMoviePlayerController 오류가 계속 발생합니다.iOS에서 비디오 재생 실패

- (void)viewDidLoad{ 
[super viewDidLoad]; 

NSString *path = [[NSBundle mainBundle] pathForResource:@"ipad2" ofType:@"mp4"]; 

self.myPlayer = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:path]]; 
[self.myPlayer prepareToPlay]; 

self.myPlayer.movieSourceType = MPMovieSourceTypeFile; 
[self.myPlayer.view setFrame:self.view.bounds]; 
[self.view addSubview:self.myPlayer.view]; 

[self.myPlayer play]; 

} 

난 단지 검은 화면이 다음과 같은 출력을 얻을 : 나는 또한 재생 이러한 알림을 추가하려했지만 전송되지 않습니다

2013-01-09 13:38:15.686 myVideoApp[1789:907] [MPAVController] Autoplay: Likely to keep up or full buffer: 0 
2013-01-09 13:38:15.690 myVideoApp[1789:907] [MPAVController] Autoplay: Skipping autoplay, not enough buffered to keep up. 

:

[[NSNotificationCenter defaultCenter] 
addObserver:self 
selector:@selector(playVideo:) 
name:MPMoviePlayerLoadStateDidChangeNotification 
object:self.myPlayer ]; 

을 그리고 self.myPlayer.loadState를 인쇄 할 때 정의되지 않은 loadState 인 0이 나옵니다.
이 다른 방법으로 간단한의 ViewController이고, 나는 .h 파일에 이러한 선언이 있습니다 @property (nonatomic, strong) MPMoviePlayerController *myPlayer;

난`아이폰 OS 6에서 실행을,이 장치와 시뮬레이터

답변

2
NSString *path = [[NSBundle mainBundle] pathForResource:@"ipad2" ofType:@"mp4"]; 
에서 모두 발생

pathnil이 아닌 디버거에서 체크 했습니까?

self.myPlayer = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:path]]; 

파일 경로에서 URL을 만드는 것은 잘못된 방법입니다. 대신 +[NSURL fileURLWithPath:]을 사용하십시오.

+0

URL을 만드는 방법을 변경해 주셔서 감사합니다. –

0

나는 또한 MPMoviePlayerViewController를 사용하여 내 앱에서 비디오를 재생하고 위의 목록 오류가 동일하게 나타납니다. MPMoviePlayer가 비디오를 표시하기 위해 더 큰 데이터를 지원하지 않지만 비디오의 더 작은 데이터를 사용하면 오류가 발생하지 않습니다. 사실 영화 플레이어의 재산을 가지고 노는 것을 준비하는 문제는 아닙니다.

큰 데이터를 표시해야하는 경우 앱에서 webview를 사용하십시오.