一般来说,视频播放的横竖屏处理有两种:

1、视频播放的选装有两种方式进行处理,一种是旋转的的时候,视频也跟着旋转;

2、还有一种可能就是屏幕旋转的时候,通过一个按钮只是选装视频一个横屏,一个为竖屏就好了;

对于播放界面不随着屏幕旋转的方式,通过改变keywindow的大小和方向来修改横屏,通过一个按钮的点击事件;

若是通过第1种方案,也就是随着屏幕的旋转播放页面发生了旋转的时候,需要UITraitEnvironment 接口的方法,好像这个方法监听,这个接口的方法调用情况:(1)初始化进入 (2)离开初始化的界面(旋转)(3)又回到初始化的界面

iOS 8 之前的系统使用这些常量在statusBarOrientation 属性、setStatusBarOrientation:animated: 这个方法;注意内容和屏幕的旋转方向是相反的;也就是可以监听statusBar方向改变来监听选装;

ios8 之后就是用这两个属性进行处理屏幕上面的选装等等问题;
UITraitEnvironment 环境特征
UITraitCollection 特点集合

大概设计大下面的属性:
UIInterfaceOrientation
就是屏幕的方向 不知、上、下、右、左
typedef enum UIInterfaceOrientation : NSInteger {
UIInterfaceOrientationUnknown = UIDeviceOrientationUnknown,
UIInterfaceOrientationPortrait = UIDeviceOrientationPortrait,
UIInterfaceOrientationPortraitUpsideDown = UIDeviceOrientationPortraitUpsideDown,
UIInterfaceOrientationLandscapeLeft = UIDeviceOrientationLandscapeRight,
UIInterfaceOrientationLandscapeRight = UIDeviceOrientationLandscapeLeft
} UIInterfaceOrientation;
UIInterfaceOrientation

这个新的属性是在ios 10 上才会使用;
typedef NS_ENUM(NSInteger, UITraitEnvironmentLayoutDirection) {
UITraitEnvironmentLayoutDirectionUnspecified = -1,
UITraitEnvironmentLayoutDirectionLeftToRight = UIUserInterfaceLayoutDirectionLeftToRight,
UITraitEnvironmentLayoutDirectionRightToLeft = UIUserInterfaceLayoutDirectionRightToLeft,
} NS_ENUM_AVAILABLE_IOS(10_0)

UITraitEnvironment 接口
包括的特征有:
水皮、垂直的大小类,展示规模、用户的界面方言、这些都是通过UITraitEnvironment 接口来使用,
UIScreen, UIWindow, UIViewController, UIPresentationController, and UIView 都可以使用功能这个接口;
上面的这些类就已经继承了;

这类接口可以被继承的;方法是可以重写的;

CustomTransitions 项目
这个项目是自定义的一些过度的动画转换工程;

UITraitCollection
包括了水平和垂直的方向上面的内容,就是界面的上面的适应,如果发生改变的时候在这些属性;
可以通过使用 UITraitCollection horizontalSizeClass, verticalSizeClass, displayScale, and userInterfaceIdiom属性获取值.
idiom 和size的值被定义在UIUserInterfaceIdiom 和UIUserInterfaceSizeClass 中;
可以通过重写traitCollectionDidChange: 监听 界面环境的变化;
controller的动画回应界面环境的改变通过重写willTransitionToTraitCollection:withTransitionCoordinator: 方法(UIContentContainer 接口)

ipad :屏幕滑动 、拆分;

traitCollectionWithTraitsFromCollections:.
这个方法是讲collections中的内容进行替换;

独立的traitcollection 是一个对应的内容,可以包含对应的图片集合;

UIImageAsset 这个类还是和相关的界面的集合有关系;(这个要看怎么效果以及处理)
UIImageAsset的处理可以参考下面的3个链接:
http://www.jianshu.com/p/bd95b1c2d845
http://www.jianshu.com/p/f7f7f97db084
http://www.jianshu.com/p/e4e179cea022

setOverrideTraitCollection:forChildViewController:(UIViewController )
两列的关系??? 这个有待时间测试;就是有对应的子控制器

  • (instancetype)appearanceForTraitCollection:(UITraitCollection *)trait; (UIAppearance)
    这个方法有没有自定界面

https://developer.apple.com/videos/wwdc2014/#216
这个链接查看界面的自定义

UIUserInterfaceSizeClass
typedef enum UIUserInterfaceSizeClass : NSInteger {
UIUserInterfaceSizeClassUnspecified = 0,
UIUserInterfaceSizeClassCompact = 1,
UIUserInterfaceSizeClassRegular = 2
} UIUserInterfaceSizeClass;

3D Touch and Trait Collections
ios 9 之后可以通过这类来机械能给你测试设备是否支持3D touch的功能;
通过forceTouchCapability 属性来读取相应的值; UIForceTouchCapability 枚举类
因为3D touch在设置上能够去设置屏蔽掉;】
forceTouchCapability
traitCollectionDidChange:
这个方法进行调整和设置值;

功能分类:
Creating a Trait Collection 创建对象
Retrieving Trait Information 获取trait信息
Comparing Trait Collections 比较trait信息
Constants 常量
Initializers 初始化
Instance Properties 实力属性

UIContentContainer
这个东西是一个借口,相关的viewcontrollers的子类以及view的子类;

idiom : 这是iPhone ,也即是iPhone的设备了;
scale:2.0 什么意思?
Gamut : sRGB 色域 _UITraitNameDisplayGamut = sRGB 应该是RGB slider的类型
SizeClass : compact 这里的compact不知道是什么意思 _UITraitNameHorizontalSizeClass = Compact, _UITraitNameVerticalSizeClass = Compact
_UITraitNameTouchLevel = 0, 触摸的等级
_UITraitNameInteractionModel = 1, 交互的模型
_UITraitNameUserInterfaceStyle = 1 界面的样式
_UITraitNameLayoutDirection = 0, 布局的方向
_UITraitNameForceTouchCapability = 2 触摸的能力
UITraitNamePreferredContentSizeCategory = UICTContentSizeCategoryL : contentsize的分类

iOS视频播放的横屏与竖屏的处理相关推荐

  1. iOS强制切换横屏、竖屏

    切换横竖屏最直接的方式是调用device的setOrientation方法.但是从sdk3.0以后,这个方法转为似有API,如果要上AppStore的话,要慎用! if ([[UIDevice cur ...

  2. 如何将视频从横屏转为竖屏?

    在剪辑视频的时候,如何将横屏视频剪辑为竖屏保存到电脑上呢?今天小编给大家分享一个新的剪辑技巧,下面一起来试试吧. 需要哪些工具? 视频剪辑高手 视频素材若干 怎么快速剪辑? 打开[视频剪辑高手],在& ...

  3. android 强制设置横屏 判断是横屏还是竖屏

    判断activity 是横屏还是竖屏  方法 1: //根据设备配置信息 Configuration cf= this.getResources().getConfiguration(); //获取设 ...

  4. 电脑快捷键横屏变竖屏,电脑显示器竖屏横屏来回切换怎么设置

    对于横屏与竖屏来回切换,很多小伙伴使用可能很不习惯,那如何在横屏与竖屏之间来回快速切换呢?下面是小编为大家介绍电脑显示器竖屏横屏来回切换的设置方法,欢迎大家阅读. 电脑显示器竖屏横屏来回切换的设置方法 ...

  5. 短视频生产利器!视频裁剪之横屏转竖屏新技术,出自腾讯多媒体实验室

    腾讯多媒体技术专栏 伴随手机等智能设备的广泛使用以及短视频平台的兴起,越来越多的"竖屏"视频开始占据人们的视野.目前,许多"竖屏"视频仍是由16:9等宽高比的& ...

  6. JS判断手机浏览器是横屏or竖屏

    移动端的浏览器一般都支持window.orientation这个参数,通过这个参数可以判断出手机是处在横屏还是竖屏状态. 从而根据实际需求而执行相应的程序. 通过添加监听事件onorientation ...

  7. 教你操作视频横屏改竖屏的方法

    小伙伴们平时在刷视频的时候肯定刷到过横屏视频也有刷到过竖屏视频,那想知道这些视频都是怎么剪辑的吗?小编今天教大家使用视频剪辑高手,将横屏视频快速剪辑成竖屏视频,一起来看看把. 首先要下载一个视频剪辑高 ...

  8. 竖屏java转横屏_android设置横屏和竖屏的方法

    方法一:在AndroidManifest.xml中配置 假设不想让软件在横竖屏之间切换,最简单的办法就是在项目的AndroidManifest.xml中找到你所指定的activity中加上androi ...

  9. python将横转为竖_如何将视频从横屏转为竖屏?

    大家好,我是不为五斗米折腰的六斗米,近期收到比较多的问题就是,怎么把横屏变竖屏,竖屏确实更符合抖音用户的习惯.跟大家分享我们常用的几种方式.以下用到的剪辑软件是pr. 先建一个竖屏工程: 打开pr-- ...

  10. Android 强制设置横屏或竖屏 设置全屏

    Android 强制设置横屏或竖屏 设置全屏 全屏 在Activity的onCreate方法中的setContentView(myview)调用之前添加下面代码 requestWindowFeatur ...

最新文章

  1. VB6基本数据库应用(五):数据的查找与筛选
  2. Monokai风格的EditPlus配色方案
  3. 第一章:火狐浏览器 : 环境配置: FireFox 版本38 + jdk 7 + selenium 2.53.6 + selenum-version 2.48.2...
  4. Win64 驱动内核编程-22.SHADOW SSDT HOOK(宋孖健)
  5. Kosaraju算法、Tarjan算法分析及证明--强连通分量的线性算法
  6. 关于web工程项目路径的一些说明
  7. 学习爬虫限时只需9.9,还在犹豫什么?
  8. Vue 2与Vue 3在自定义组件v-model上的区别
  9. OpenCV精进之路(十二):详解掩膜mask
  10. 全屋WiFi方案:Mesh路由器组网和AC+AP
  11. 改变PSD文件单一的图标,让图标变成图像缩略图
  12. iOS开发-Masonry约束宽高比
  13. USB-HID游戏手柄的数据通信
  14. iPhone 电池和性能
  15. 【CS231n】斯坦福大学李飞飞视觉识别课程笔记(十九):卷积神经网络笔记(下)
  16. 小程序 : js获取今日日期、加日期、减日期; 判断今日 、判断昨日
  17. 太白金星:我很关心分布式 Quorum NWR
  18. Arduino驱动DS18B20数字温度传感器
  19. ATP自造8Gb内存颗粒供DDR3使用
  20. 高校后勤管理系统java代码_高校后勤综合数据管理与分析系统设计与实现毕业论文+文献资料+JavaSSM项目源码及Mysql数据库...

热门文章

  1. 服务器端网站自适应,[移动SEO]PC端和移动端最佳适配方案
  2. 字节跳动计算机视觉算法工程师面试题(秋招)
  3. 两块stm32单片机串口通信讲解
  4. java公寓报修管理系统,基于jsp的公寓报修管理系统-JavaEE实现公寓报修管理系统 - java项目源码...
  5. 软件测试---微信小程序测试点
  6. 【基础学习】操作系统学习笔记 - 内存管理:内存使用与分段、内存分区与分页、多级页表、快表、段页式内存管理的实现、内存的换入换出
  7. pc上最好用的pdf阅读工具(PDF Xchange Viewer)
  8. js web端扫码枪对接
  9. Linux 下ALSA音频工具amixer,aplay,arecord使用
  10. iOS 性能优化 -- APP启动时间