一个简单的 “视频启动界面” 的实现,参考他人的实现,核心抽出来,简化了一下。

AnimationVideoViewController 实现

- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view from its nib.self.moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:self.videoURL];self.moviePlayer.view.frame = CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);self.moviePlayer.shouldAutoplay = YES;self.moviePlayer.controlStyle = MPMovieControlStyleNone;self.moviePlayer.repeatMode = MPMovieRepeatModeNone;self.moviePlayer.movieSourceType = MPMovieSourceTypeFile;[self.view addSubview:self.moviePlayer.view];//监听播放完成[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(playFinsihed) name:MPMoviePlayerPlaybackDidFinishNotification object:nil];UIView *backView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT)];backView.backgroundColor = [UIColor clearColor];[self.moviePlayer.view addSubview:backView];UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(clickClip:)];[backView addGestureRecognizer:tap];[self configShimmerLabel];
}

  

AnimationVideoViewController 调用

 - (void)viewWillAppear:(BOOL)animated{[super viewWillAppear:animated];[self configureVideoStrat];}- (void)configureVideoStrat {NSString *firstlaunch = @"firstlaunch";__weak typeof(self)weakSelf = self;NSInteger firstIN = [[[NSUserDefaults standardUserDefaults] valueForKey:firstlaunch] integerValue];if (firstIN != 0) {//return;}self.animationVC = [[AnimationVideoViewController alloc] init];self.animationVC.videoURL = [NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:@"intro"ofType:@"mp4"]];self.animationVC.view.frame = CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);self.animationVC.finishBlock = ^{[UIView animateWithDuration:1.0 animations:^{weakSelf.animationVC.view.alpha = 0;} completion:^(BOOL finished) {[weakSelf.animationVC.view removeFromSuperview];weakSelf.animationVC = nil;}];};[[[UIApplication sharedApplication] keyWindow] addSubview:self.animationVC.view];[[[UIApplication sharedApplication] keyWindow] bringSubviewToFront:self.animationVC.view];[[NSUserDefaults standardUserDefaults] setValue:@(1) forKey:firstlaunch];[[NSUserDefaults standardUserDefaults] synchronize];}

  

github 地址:LCSVideotartPageExample

转载于:https://www.cnblogs.com/saytome/p/6963909.html

iOS 视频启动界面相关推荐

  1. iOS APP启动界面异常横屏问题处理

    为了保证每次APP启动必然竖屏,在工程配置中Device Orientation必须只选择Protrait.这个时候你会发现每个界面都无法旋转了,需要在AppDelegate中加入如下代码(具体支持的 ...

  2. iOS开发- 启动动画(动态欢迎界面,非静态Default)

    最近在使用<青葱日记>这款App,发现它的启动界面做的很精美. 不同我自己之前简单的替换Default.png图片. 它的动态效果做的不错. 于是乎,花了点时间,自己实现了这个功能. 其实 ...

  3. IOS视频编辑功能详解上篇-添加水印

    前言 用代码在简单视频编辑中,主要就是加美颜.水印(贴图).视频截取.视频拼接.音视频的处理,在美颜中,使用GPUImage即可实现多种滤镜.磨皮美颜的功能,并且可以脸部识别实时美颜等功能,这个有很多 ...

  4. java 程序启动界面_程序启动界面java代码

    最近写了个程序启动界面,分享一下 import javax.swing.*; import java.awt.*; import java.net.*; //Download by http://ww ...

  5. iOS App 启动性能优化

    为什么80%的码农都做不了架构师?>>>    本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq. ...

  6. iOS程序启动原理(上)

    为什么80%的码农都做不了架构师?>>>    iOS程序启动原理 Info.plist 常见设置 建立一个工程后,会在Supporting files文件夹下看到一个"工 ...

  7. cordova 项目添加splash启动界面

    需求:cordova项目启动添加启动界面,并在设备初始化完成后自动隐藏splash 1.新建项目 cordova create Mypro com.test.pro proName 2.添加平台 cd ...

  8. idea 启动界面导入项目_如何为您的项目启动有效的登录页面

    idea 启动界面导入项目 by Christian-Peter Heimbach 通过克里斯蒂安·彼得·海姆巴赫 如何为您的项目启动有效的登录页面 (How to launch an effecti ...

  9. android 启动白屏_从细节入手改善用户体验,Flutter跨平台App开发中设置Android和iOS的启动页

    前言 flutter开发App方便快捷,就是冷启动的时候要加载dart引擎有短暂的白屏,严重影响用户体验,这个时候我们就需要设置一个启动图片,想国内大部分App那样(例如微信那个地球),启动App的时 ...

最新文章

  1. 【ACM】奇怪的回文数
  2. DiskLruCache 源码解析
  3. Rsync数据同步服务
  4. adb启动失败 ADB server didn't ACK
  5. Python的基础语法(二)
  6. Quartz.net通过配置文件来完成作业调度
  7. 手机升级android5.0,Android 7.0就要来了?你家手机升级到5.0了吗?
  8. 写MySQL存储过程实现动态执行SQL
  9. 【sklearn学习】模型网格化调参
  10. GIT上传下载报错:[You do not have permission to pull from the repository]的解决方案!
  11. 用easyx画五角星_【洛谷日报#195】有个东西叫EasyX
  12. 元旦和春节将至,抢票神器助君早日回家
  13. glMatrixMode()函数
  14. B站收藏夹快速导出详细步骤
  15. 理解Spring 容器设计理念
  16. xdoj-81-字符串查找
  17. 五子棋(人机)-粗暴版AI
  18. python异常数据筛选_学习笔记(06):Python数据清理实践-数据过滤,06Python,清洗,实战,筛选...
  19. @Validated使用
  20. 使用linux 中的 tree 指定显示深度,显示文件目录结构

热门文章

  1. tomcat的JK和JK2
  2. 【精品资源】干货分享:20款精美的手机网站模板下载
  3. win bat 输入参数
  4. iOS 毛玻璃效果的实现方法
  5. python 面向对象(三大特性)
  6. React篇-报错信息:warning: Can't call setState (or forceUpdate) on an unmounted component.
  7. JavaScript label语句
  8. 阿里云API网关(14)流控策略
  9. 使用cocoapods时,import 找不到头文件。
  10. EmEditor编辑器正则表达式的优点