Ios Objective-C如何在MPMoviePlayerController或AVPlayer上即时、毫不延迟地播放视频?

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];

我试过在AVPlayer和MPMoviePlayerController上播放500 KB的视频,它们都有一点令人讨厌的延迟。AVPlayer和MPMoviePlayerController都会显示一个黑屏2-3秒,然后启动视频。这真的很烦人,为什么视频需要这么长时间才能开始?我怎样才能修好它

 //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或类似语句?