Я использовал MPMoviePlayer для воспроизведения короткого видео в моем приложении без проблем в SDK 3.1.3.Я внес изменения в код в SDK 4, но видео не воспроизводится.У меня просто черный экран и звук.В Центре разработчиков Apple отсутствует пример кода для этого класса для последней версии SDK.Ниже приведен код, который я использую:
- (void)viewDidLoad {
[super viewDidLoad];
//videoPlayer is a MPMoviePlayerController object defined in the header file of the view controller
if (videoPlayer == nil){
NSString * videoPath = [[NSBundle mainBundle] pathForResource:@"myvideo" ofType:@"mp4"];
if (videoPath == NULL){
return;
}
NSURL * videoURL = [NSURL fileURLWithPath:videoPath];
videoPlayer = [[MPMoviePlayerController alloc] initWithContentURL:videoURL];
videoPlayer.controlStyle = MPMovieControlStyleNone;
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playbackFinished:) name:@"MPMoviePlayerPlaybackDidFinishNotification" object:movieController.moviePlayer];
[videoPlayer play];
[videoPlayer setFullscreen:YES];
[self.view addSubview:videoPlayer.view];
}
}
Выше приведено только воспроизведение звука с черным экраном.Уведомление вызывается правильно в конце воспроизведения.
Когда вышеописанное не сработало, я даже попытался использовать новый класс MPMoviePlayerViewController следующим образом:
- (void)viewDidLoad {
[super viewDidLoad];
NSString * videoPath = [[NSBundle mainBundle] pathForResource:@"myvideo" ofType:@"mp4"];
if (videoPath == NULL){
return;
}
NSURL * videoURL = [NSURL fileURLWithPath:videoPath];
//movieController is an MPMoviePlayerViewController object defined in the header file of view controller
movieController = [[MPMoviePlayerViewController alloc] initWithContentURL:videoURL];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playbackFinished:) name:@"MPMoviePlayerPlaybackDidFinishNotification" object:movieController.moviePlayer];
[movieController.moviePlayer setFullscreen:YES];
[movieController.moviePlayer play];
[self presentMoviePlayerViewControllerAnimated:movieController];
}
Та же проблема сохраняется -Я слышу звук и уведомление в конце воспроизведения вызывается, как и ожидалось.Однако вместо видео я вижу только черный экран.
В кодировании видео нет ничего плохого, поскольку одно и то же видео отлично воспроизводится как в iTunes, так и на моем iPod Touch в обычном списке воспроизведения видео.
Может ли кто-нибудь помочь мне с этой проблемой?
Заранее спасибо