Ios Objective-C如何在MPMoviePlayerController或AVPlayer上即时、毫不延迟地播放视频?
我试过在AVPlayer和MPMoviePlayerController上播放500 KB的视频,它们都有一点令人讨厌的延迟。AVPlayer和MPMoviePlayerController都会显示一个黑屏2-3秒,然后启动视频。这真的很烦人,为什么视频需要这么长时间才能开始?我怎样才能修好它Ios Objective-C如何在MPMoviePlayerController或AVPlayer上即时、毫不延迟地播放视频?,ios,objective-c,video,mpmovieplayercontroller,avplayer,Ios,Objective C,Video,Mpmovieplayercontroller,Avplayer,我试过在AVPlayer和MPMoviePlayerController上播放500 KB的视频,它们都有一点令人讨厌的延迟。AVPlayer和MPMoviePlayerController都会显示一个黑屏2-3秒,然后启动视频。这真的很烦人,为什么视频需要这么长时间才能开始?我怎样才能修好它 //Movie Player Code _moviePlayerVC = [[MPMoviePlayerViewController alloc] initWithContentURL:video];
//Movie Player Code
_moviePlayerVC = [[MPMoviePlayerViewController alloc] initWithContentURL:video];
_moviePlayerVC.moviePlayer.view.userInteractionEnabled = YES;
_moviePlayerVC.moviePlayer.view.multipleTouchEnabled = YES;
_moviePlayerVC.moviePlayer.repeatMode = MPMovieRepeatModeOne;
_moviePlayerVC.moviePlayer.controlStyle = MPMovieControlStyleNone;
_moviePlayerVC.moviePlayer.scalingMode = MPMovieScalingModeFill;
_moviePlayerVC.moviePlayer.view.frame = self.frame;
[_moviePlayerVC.moviePlayer setShouldAutoplay:YES];
_moviePlayerVC.view.frame = self.frame;
[self addSubview:_moviePlayerVC.view];
//AVPlayer Code
AVAsset *asset = [AVAsset assetWithURL:video];
AVPlayerItem *item = [[AVPlayerItem alloc] initWithAsset:asset];
_player = [[AVPlayer alloc] initWithPlayerItem:item];
_player.actionAtItemEnd = AVPlayerActionAtItemEndNone;
AVPlayerLayer *layer = [AVPlayerLayer playerLayerWithPlayer:_player];
layer.frame = self.frame;
layer.backgroundColor = [UIColor clearColor].CGColor;
[layer setVideoGravity:AVLayerVideoGravityResizeAspectFill];
您可以预加载
AVPlayer
并观察其状态。一旦它更改,您应该能够毫不延迟地开始播放。它仍然不能工作,因为某些原因仍然存在延迟。像音频一样,甚至在视频显示之前就开始了。PS你所说的预装AVPlayer是什么意思。尝试了你的AVPlayer代码,但屏幕上没有显示任何内容。代码中是否缺少addsubview或类似语句?