针对项目中出现视频播放需求,简单的视频播放功能,可以使用AVPlayerViewController,在iOS9后废弃了之前的MPMoviePlayer,现在统一使用AVKit下的AVPlayerViewController;
作为第一次使用AVPlayerViewController,总结一些遇到的坑,分享出去;
1.首先是全屏播放问题,由于界面只支持portrait模式,可是看视频是需要Landscape模式的,这样视频进行全屏播放的时候就不能出现横屏的模式,尝试了一下几种解决方式;

  • 将需要全屏播放的View,横屏模式打开,这样用户点击全屏按钮的时候,如果会调ViewWillDisappear方法,这样就可以通过在这些视图appear和disappear方法中,手动的置手机横屏,达到想要的效果;
  • 寻找点击全屏时会触发的方法,在触发的方法的时候,自己通过手动处理也能达到目的;
  • 如果实在找不出解决方法,把app的landScape模式打开,用户再看视频的时候就能出现了;但是其它页面会出错;
    在实际的操作中发现,通过代码在viewController中的操作都是无效的;
    找遍了所有AVPlayerViewController的API都没有找到点击全屏的触发方法;
    经过几番模式,发现用以下的方式可以解决问题:
static NSString * const VIDEO_CONTROLLER_CLASS_NAME_IOS7 = @"MPInlineVideoFullscreenViewController";
static NSString * const VIDEO_CONTROLLER_CLASS_NAME_IOS8 = @"AVFullScreenViewController";- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window{if ([[window.rootViewController presentedViewController] isKindOfClass:NSClassFromString(VIDEO_CONTROLLER_CLASS_NAME_IOS7)] ||[[window.rootViewController presentedViewController] isKindOfClass:NSClassFromString(VIDEO_CONTROLLER_CLASS_NAME_IOS8)]){return UIInterfaceOrientationMaskAllButUpsideDown;}else {NSNumber *value = [NSNumber numberWithInt:UIInterfaceOrientationPortrait];[[UIDevice currentDevice] setValue:value forKey:@"orientation"];[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationFade];return UIInterfaceOrientationMaskPortrait;}}

2.在设置AVPlayerViewController的View的frame的时候,发现实际的展示效果和自己本身设的尺寸并不一致,通过下面这行代码可以解决一些问题,但是碰到与约束相关的页面还是会出错,最后通过创建一个单独的Cell来展示AVPlayerViewController的View就没问题了

        _moviePlayer.view.translatesAutoresizingMaskIntoConstraints = YES;

3.播放视频的时候不会停止,即使将视频置为nil也不会停止,通过下面这段代码完美解决;

@property(nonatomic,strong)id playbackObserver; /**<检测播放的背景*/- (void)removeBoundaryTimeObserver {if (self.playbackObserver) {[self.moviePlayer.player removeTimeObserver:self.playbackObserver];self.playbackObserver = nil;}
}

后记:在使用的时候,顺便研究了一下AVPlayer的使用,下一篇文章将会进行讲解;

AVPlayerViewController支持横屏设置相关推荐

  1. iOS 项目整体是竖屏,个别页面支持横屏

    最近在做一个视频APP,工程整体是竖屏的,如下图,播放器需支持横屏.在转屏的过程遇到很痛苦的问题.[UIApplication sharedApplication].statusBarOrientat ...

  2. iphone桌面横屏设置在哪里_苹果手机iphone6 plus怎么设置横屏显示有几种显示模式...

    苹果手机iPhone6和iPhone6 Plus能不能横屏是很多朋友所疑惑的,毕竟安卓手机已横屏多年.其实iPhone6 Plus是可以横屏显示的,iPhone6 4.7寸的屏幕就不支持横屏显示了.下 ...

  3. 邮件发送类,支持HTML格式,支持优先级设置

    www.chinacs.net  2002-5-9  中文C#技术站 邮件发送类,支持HTML格式,支持优先级设置.通过SOCKET类实现的 using System; using System.Te ...

  4. UE3 贴图支持及设置

    贴图支持及设置 概述 贴图分辨率 引擎贴图分辨率范围 已压缩贴图的内存需求 法线贴图格式 引擎配置 TextureGroup(贴图组)属性 PC AppCompat 散列表元 TEXTUREGROUP ...

  5. 【毕业设计_课程设计】蓝牙灯:支持一键设置情景模式、无极调光调色

    文章目录 0 前言 1 功能简介 2 ATTitleBar 3 ReactiveCocoa 4 CBCentralManager 5 ATCarouselView 6 细节问题 7 Smart Lam ...

  6. android微信小程序支持横屏,微信最新内测版本:小程序支持横屏使用!

    原标题:微信最新内测版本:小程序支持横屏使用! 打开百度搜索小程序横屏,你会看到满屏的网友提问是否能横屏?怎么操作能横屏? 当然不能. 不过,在8月30日,微信微信团队对外发布了iOS微信最新众测版本 ...

  7. mysql支持中文设置

    转载自:mysql支持中文设置 1,创建table的时候就使用utf8编码 举个例子: 1 create table entries2 ( 2 id int auto_increment, 3 tit ...

  8. 魔众文档云端转换支持清晰度设置

    文档转换本地环境配置复杂,特别是量大的时候容易出现服务器负载均衡问题,影响用户体验. 通过魔众文档云端转换模块和魔众文档转图片接口(https://api.tecmz.com/module/DocTo ...

  9. ios IPad全局禁止横屏设置

    开发应用中,如果需要应用禁止横屏,除了在项目的target里设置[去除勾选支持的方向],还需要勾选Full Screen选项[默认没有勾选,此时需要勾选],然后在AppDelegate中加入代码: - ...

  10. STM32F4开发-TFT屏驱动(支持横屏、竖屏选择)

    一.总述 以下的程序都是基于 https://blog.csdn.net/zhyulo/article/details/89816439 方法建立的工程. 代码已上传:https://download ...

最新文章

  1. 独家 | 一文读懂LinkedIn个性化推荐模型及建模原理
  2. 漫谈面向对象基石之开闭原则(OCP)(转)
  3. 【pmcaff】挖掘产品痛点的神器:用户角色模型
  4. python数据爬虫课程_数据分析之Python3爬虫视频课程
  5. 微信小程序退出页面时清除定时器
  6. mac os mysql 命令_Mac环境下MySQL的安装和基本命令的使用
  7. 存储新技术之“连续数据保护(CDP)”
  8. 【leetcode 简单】 第一百一十题 分发饼干
  9. 12_04_Linux软件管理之四yum
  10. R中6种读入表格数据的方式哪个最快?结果出人意料!
  11. linux gfs文件系统,Linux环境下使用GFS文件系统
  12. SQL73 考试分数(二)
  13. 非线性优化库Ceres问题记录
  14. java jsp 乱码_JAVA/JSP 中文乱码
  15. 为什么闹钟设置了却不响_手机闹钟不响是怎么回事 怎么设置闹钟【图文】
  16. 通信管线及宽带接入工程建设中主要涉及的 设计、施工及验收规范
  17. java覆盖的概念_java中覆盖是什么意思?java方法覆盖的概念详解
  18. git学习(一)初始化
  19. luogu 题解 P1217 【[USACO1.5]回文质数 Prime Palindromes】
  20. python爬取网易云音乐排行榜数据

热门文章

  1. matlab曲线拟合后怎么看公式,matlab拟合曲线并输出公式
  2. 重磅!2020国家科学技术奖全名单公布!
  3. CPC客户端安装教程(2022/4/1)
  4. Qt 5.9.6 下载及安装
  5. ae 的动画导出为html,Bodymovin v5.5.5 AE脚本可以导出json格式在Web动画制作工具
  6. 《显微镜下的大明》马伯庸2019年1月新书mobi、epub、PDF资源共享
  7. STM32F103C8在应用编程(IAP)介绍及实现
  8. ESP32-CAM模块网络摄像头demo加装舵机控制教程
  9. 双非一本考研湖南大学计算机技术初试经验分享
  10. linux设备驱动模型架构分析 一