Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

APP启动 播放启动视频 视频播放 前后 转场衔接流畅 (被别人转载已经获得150多颗星)

Notifications You must be signed in to change notification settings

coderPoo/XBLauchMovieViewController

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

5 Commits

Repository files navigation

XBLauchMovieViewController

APP启动 播放启动视频

转载请加上原作者链接

  • 第一:最主要是解决 视频播放 前后 转场衔接流畅问题,防止闪黑!
  • 第二:当视频在播放中,进入后台视频暂停,在进入APP视频继续播放

手机效果


关键的3个点

  1. 在moviePlayer 的view和backgroundView 分别加上启动图片和结束播放图片空间,为什么这么放 有兴趣可以研究一下
 // 播放之前设置启动页图片 防止闪黑,图片 最好 是视频第一帧,转场效果更好
 [self.moviePlayer.view addSubview:_startPlayMovieImageView];
 //首次使用app, 需要点击 "进入"按钮才能进入app, 为了防止启动视频结束后 闪动空白页, 所以会调用视频截图操作("movieThumbnailLoadComplete:"), 截取 视频 当前帧,来让moviePlayer不会显示黑色
 //第二次启动app之后 用的是短视频的 最后一帧 图片
 [self.moviePlayer.backgroundView addSubview:_stopPlayMovieImageView];
 //为什么加启动图片加载到 self.moviePlayer.view上,结束之后为什么加载self.moviePlayer.backgroundView上,有兴趣的同学可以研究一下(当初也是遇见各种坑)'''

2. 移除UIApplicationDidEnterBackgroundNotification通知,防止其进入后台异常(具体忘了,好像是在iOS8遇见的问题)
 /***** 第二个重点 在iOS8不移除有问题 *****/
 /**
 * MPMoviePlayerController 在程序置到后台 之后会自动结束播放视频,移除监听之后才能置到后台之后暂停
 * 这个很关键,否则可能遇到未知问题
 */
 [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidEnterBackgroundNotification object:nil];
 
 //添加通知
 //进入前台
 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(viewWillEnterForeground) name:UIApplicationDidBecomeActiveNotification object:nil];
 if ([self isFirstLauchApp]) {//第一次启动视频
 [[NSNotificationCenter defaultCenter] addObserver:self
 selector:@selector(stopPlayMovie)
 name:MPMoviePlayerPlaybackDidFinishNotification
 object:nil];//播放结束
 }
 [[NSNotificationCenter defaultCenter] addObserver:self
 selector:@selector(startPlayMovie)
 name:MPMoviePlayerNowPlayingMovieDidChangeNotification
 object:nil];//开始播放

3. 点击 "进入应用"首先暂停视频,获取当前帧设置 图片
 [self.moviePlayer pause];
 /***** 第三重点 关键位置 ****/
 // 截取当前暂停时的图片,放到stopPlayMovieImageView,防止闪黑
 CGFloat currentPlayBackTime = self.moviePlayer.currentPlaybackTime;
 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(movieThumbnailLoadComplete:) name:MPMoviePlayerThumbnailImageRequestDidFinishNotification object:self.moviePlayer];
 [self.moviePlayer requestThumbnailImagesAtTimes:@[[NSNumber numberWithFloat:currentPlayBackTime]] timeOption:MPMovieTimeOptionExact];

更新文档 一是因为有空闲时间了,二是看到别人拿我的项目 放到自己的github上然后有 100多个star。心里边... 如果有更好方法 可以联系QQ469926011如果转载 希望加上原地址谢谢!!

About

APP启动 播放启动视频 视频播放 前后 转场衔接流畅 (被别人转载已经获得150多颗星)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /