MPMoviePlayerViewController を使用して、フォーマット 3gp のビデオを再生します。一部のビデオは再生できますが、他のビデオは再生できません。MPMoviePlayerViewController は、ビデオの長さが 0 秒であるように、ロードしてすぐに終了します。ビデオに問題があるに違いないと思いました。しかし、私はアルバム内のiPhoneのビデオプレーヤーを使用しています.それはビデオを再生することができます! したがって、MPMoviePlayerViewController は強力ではないのではないかと思います。また、avfoundation フレームワーク avplayer を使用してビデオを再生したいと考えています。コンテンツ ビューにサブレイヤーを追加します。失敗しました..それは私を夢中にさせます! 誰かがいくつかの問題に遭遇しましたか?
ここに私のコードがあります
-(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];
}
}