3
我正在使用MPMoviePlayer在我的應用程序中播放短視頻,而在SDK 3.1.3中沒有任何問題。我對SDK 4中的代碼進行了更改,但視頻未播放。我只是得到一個黑色的屏幕和音頻。 Apple開發人員中心沒有針對最新SDK的此類示例代碼。以下是我正在使用的代碼:在iPhone SDK 4.0中使用MPMovieController的問題
- (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中在常規視頻播放列表中正常播放。
任何人都可以幫我解決這個問題嗎?
在此先感謝