首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Objective-C如何在MPMoviePlayerController或AVPlayer上即时播放视频,而不会延迟?

Objective-C如何在MPMoviePlayerController或AVPlayer上即时播放视频,而不会延迟?
EN

Stack Overflow用户
提问于 2015-04-06 08:30:36
回答 1查看 1.1K关注 0票数 0

我试过在AVPlayer和MPMoviePlayerController上播放500KB的视频,它们都有一点恼人的延迟。AVPlayer和MPMoviePlayerController都会显示2-3秒的黑屏,然后开始播放视频。这真的很烦人,为什么视频花了这么长时间才开始?我怎么才能修复它?

代码语言:javascript
复制
 //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];
EN

回答 1

Stack Overflow用户

发布于 2015-04-06 15:13:12

您可以预加载一个AVPlayer并观察它的status。一旦它改变了AVPlayerStatusReadyToPlay,你应该能够开始播放没有任何延迟。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29463842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档