手机怎样录制屏幕视频的时候是横屏拍的,视频播放时怎么变成竖屏播放了?

在App Store上的大部分视频播放App中,都实现了竖屏小屏播放以显示更多相关信息,横屏切换到全屏播放,这样的交互显得优雅而大方。最近项目里有个这样的需求,为全屏视频播放加上竖屏模式。下面,让我们一起来实现这个需求。
iOS中的方向
iOS设备中有两种方向,一种是设备方向,一种是屏幕视图方向。我们可以直接调用
[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPartrait];
强制更改设备方向,但该方法已经在iOS6中废止。另外一种更改设备方向的方法是通过重力感应触发。
那么视图方向是又什么决定的呢?
全局Info.plistiOS6+在UIApplicationDelegate中增加了 - (NSUInteger)supportedInterfaceOrientationsForWindow:(UIWindow *)回调UIViewController。并且只在UIWindow的rootViewController或model状态下的UIViewController有效最终的视图方向取决于 (全局控制 ∩ UIWindow 中的回调 ∩ 单个界面控制) 的交集,如果交集为空,iOS6下抛出 UIApplicationInvalidInterfaceOrientationException 异常后崩溃。
UIController中对视图方向变化的响应
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
return ((toInterfaceOrientation == UIInterfaceOrientationLandscapeRight) |
(toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft));
// 支持转屏?
(BOOL)shouldAutorotate
return YES;
// 支持的屏幕方向
- (NSUInteger)supportedInterfaceOrientations
return UIInterfaceOrientationMaskL
}实现前后的效果
两张横竖屏的图片中,菜单、标题大小都发生了改变。下面我们就来讨论下实现的方法。
首先在视频播放所在UIViewController支持横竖屏,并在设备旋转的回调中,通知菜单当前的设备方向发生了改变,代码如下://设备旋转前
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
//横竖屏变更菜单等
if (toInterfaceOrientation == UIInterfaceOrientationPortrait) {
//竖屏状态
//设备旋转前
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
//对视图进行旋转处理,这里通过present一个新的UIViewController,暂不需要处理
//设备旋转完
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
//设备旋转完的处理
// 支持转屏
(BOOL)shouldAutorotate
return YES;
// 支持的屏幕方向
- (NSUInteger)supportedInterfaceOrientations
return UIDeviceOrientationLandscapeLeft | UIInterfaceOrientationP
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
return ((toInterfaceOrientation == UIInterfaceOrientationPortrait) ||
(toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft));
}willRotateToInterfaceOrientation:duration: 和 willAnimateRotationToInterfaceOrientation:duration:的区别在于调用的顺序。前者在旋转前调用,并且屏幕方向、设备原点、视图大小等都未改变,后者在旋转的动画block中调用,并且屏幕方向、设备原点、视图大小等都已改变。因此在willRotateToInterfaceOrientation:duration:中,应当做变量的更改;在willAnimateRotationToInterfaceOrientation:duration:中,适合做一些重绘工作。考虑到原来的视频播放器只支持横屏播放,这里采用的方案如下:竖屏状态下,先present一个只支持横屏的UIViewController,再将视频播放器作为横屏UIViewController的子控制器添加进来。这样可以触发iOS进行横竖屏检测。当竖屏切到横屏时,旋转的动画设置。代码如下:[portraitViewController presentViewController:landscapeViewController animated:NO completion:^{
//mvPlayer原先是作为protraitViewController的子UIViewController
[mvPlayer.view removeFromSuperview];
[mvPlayer removeFromParentViewController];
//改为作为landscapeViewController的子UIViewController
[landscapeViewController addChildViewController:mvPlayer];
[landscapeViewController.view addSubview:mvPlayer.view];
//改变状态栏方向
[[UIApplication sharedApplication] setStatusBarHidden:YES];
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeLeft animated:NO];
CGAffineTransform transform = CGAffineTransformMakeRotation(-M_PI_2);
transform = CGAffineTransformScale(transform, scale, scale);
mvPlayer.view.transform =
//旋转动画
[UIView animateWithDuration:[[UIApplication sharedApplication] statusBarOrientationAnimationDuration] animations:^{
mvPlayer.view.transform = CGAffineTransformI
mvPlayer.view.frame = landscapeViewController.view.
}completion:^(BOOL finished) {
[[UIApplication sharedApplication] setStatusBarHidden:NO];
}];横屏切换到竖屏的动画实现如下://更改mvPlayer的父UIController
[mvPlayer.view removeFromSuperview];
UIViewController *viewController = strongSelf.player.presentingViewC
[mvPlayer removeFromParentViewController];
[viewController dismissModalViewControllerAnimated:NO];
[portraitViewController addChildViewController:mvPlayer];
[portraitViewController.view addSubview:mvPlayer.view];
//缩放动画
CGAffineTransform transform = CGAffineTransformMakeScale(scale, scale);
mvPlayer.view.transform =
mvPlayer.view.frame = CGRectMake(0, 0, CGRectGetWidth(mvPlayer.view.frame), CGRectGetHeight(mvPlayer.view.frame));
mvPlayer.view.transform = CGAffineTransformRotate(transform, M_PI_2);
[UIView animateWithDuration:[[UIApplication sharedApplication] statusBarOrientationAnimationDuration]
animations:^{
mvPlayer.view.transform = CGAffineTransformMakeScale(scale, scale);
completion:^(BOOL finished) {
mvPlayer.view.frame = CGRectMake(0, 0, CGRectGetWidth(mvPlayer.view.frame), CGRectGetHeight(mvPlayer.view.frame));
以上是手动旋转过程。还有一种方法是直接旋转portraitViewController.view。人为旋转过程中,设备的原点并未发生改变,这需要考虑横竖屏布局问题。
本文介绍横竖屏切换的一些基础知识,并实践了类似腾讯视频的横竖屏人为切换方式,达到不同状态下显示不同视图的交互方式。
ios 只让播放视频的 时候能够全屏横屏 其他全部非全屏非横屏
目前已经测试很多 可以
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWi...
iOS 全局禁止横屏,但视频播放界面选择性横屏的解决办法
有时我们的APP并没有适配横屏的需求,但是在个别视频播放界面,我们需要在播放视频的时候横屏,退出全屏的时候不能横屏,但是有时候并没有原生API并没有给出解决方案。
当其他界面不支持横屏时:
ios 强制横屏大总结
整个项目是竖屏的,不能横屏,但是有个播放界面必须要横屏于是就开始找各种横屏的方法,最后在手机上好使了,但是在pad上横屏启动的时候界面是横屏显示,很是苦恼,就又开始了漫长的找资料,直接上代码1,配置p...
iOS 拍摄视频方向不正确问题
解决拍摄视频方向不正确问题。。。
最近在做视屏播放,我用的系统原生的播放器,但是横竖屏切换的时候遇到问题,这里是我的解决办法,记在此处,日后查找也方便。
首先在AppDelegate中如下写://appdelegate.h加
做一个自己的视频播放器 学技能的同时带来满满的成就感
最近在做一个视频APP,工程整体是竖屏的,如下图,播放器需支持横屏。在转屏的过程遇到很痛苦的问题。[UIApplication sharedApplication].statusBarOrientat...
点击上方“iOS开发”,选择“置顶公众号”
关键时刻,第一时间送达!
所有的视频类App都会面临一个播放器横竖屏切换的问题,之前一直使用KVO强制修改设备方向达到竖屏转为横屏。
今天在利用MPMoviePlayController写一个小Demo时发现了一点点小的问题,因为整个项目都是只支持竖屏浏览,所以就导致了在播放视频的时候全屏进入时旋转屏幕视频却不能横屏显示,无疑,在视...
没有更多推荐了,小米手机录像是竖屏,播放时却自动横屏,怎么转换?_百度知道
小米手机录像是竖屏,播放时却自动横屏,怎么转换?
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
Elsa的星空
来自知道合伙人认证团队
Elsa的星空
采纳数:318
获赞数:1715
擅长:暂未定制
把重力感应的方向锁定关闭就行。1、重力感应,是指对地球的重力方向的感知,许多的设备上都安装有重力感应芯片。2方向感应器的实现靠的是iPhone的内置加速计。iPhone所采用的加速计是三轴加速计,分为X轴、Y轴和Z轴。这三个轴所构成的立体空间足以侦测到你在iPhone上的各种动作。在实际应用时通常是以这三个轴(或任意两个轴)所构成的角度来计算iPhone倾斜的角度,从而计算出重力加速度的值。3、通过感知特定方向的惯性力总量,加速计可以测量出加速度和重力。iPhone的三轴加速计意味着它能够检测到三维空间中的运动或重力引力。因此,加速计不但可以指示握持电话的方式(或自动旋转功能),而且如果电话放在桌子上的话,还可以指示电话的正面朝上还是朝下。、
采纳数:143
获赞数:389
擅长:暂未定制
我用的也是小米,这种情况把重力感应的方向锁定关闭就行了!
本回答被网友采纳
进入相机,右下角有个设置,把简单模式关闭就可以了,我是这样搞好的,之前也总是横的,转不过来。
2条折叠回答
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。在线时间0 小时
版本V9.5.2.0.NDACNFA
积分 101, 距离下一级还需 99 积分
积分 101, 距离下一级还需 99 积分
机型未知设备
MIUI版本V9.5.2.0.NDACNFA
平时是关闭自动横屏功能的,然后看视频的时候,用自带的播放器或第三方播放器看视频,老是久不久会由横屏状态卡顿一下自动转成竖屏,接着又返回竖屏,这个是什么原因呀?之前其他手机同样设定看视频没有出现这种情况
分享到微信朋友圈
打开微信,点击底部的“发现”,使用 “扫一扫” 即可将网页分享到我的朋友圈。
经验11352 米
在线时间524 小时
机型未知设备
签到次数273
MIUI版本8.8.8
如果是APP的话,横屏的时候点击屏幕左边的锁定锁起来就好?
经验9367 米
在线时间44 小时
版本8.7.24
机型未知设备
签到次数45
MIUI版本8.7.24
下拉通知栏,点开方向锁定就行了
经验1839 米
在线时间14 小时
机型未知设备
签到次数13
MIUI版本8.3.1
下拉通知栏,点开方向锁定就行了
没用的!开了也没用!
经验7568 米
在线时间261 小时
本人不太会说话!得罪之处!有种打我啊!
机型红米手机5
签到次数125
MIUI版本8.8.9
你看的视频是哪里的,浏览器的?还是APP播放器的视频。
    ﹏?ul﹍﹍     
  今天我们要挑战的是:一边嚼Stride炫迈口香糖,一边盖章,盖到没味道就停吧。哇,盖了这么多,还有味道啊?我去年买了个表,早就没味道了!帖子太多根本停不下来!
经验1067 米
在线时间41 小时
版本V9.2.7.0.NDECNEK
积分 1610, 距离下一级还需 390 积分
积分 1610, 距离下一级还需 390 积分
机型未知设备
签到次数36
MIUI版本V9.2.7.0.NDECNEK
这个不应该吧
在线时间0 小时
版本V9.5.2.0.NDACNFA
积分 101, 距离下一级还需 99 积分
积分 101, 距离下一级还需 99 积分
机型未知设备
MIUI版本V9.5.2.0.NDACNFA
电影文件已经下载到手机里,有mp4格式及其它格式,2楼也有友友提到锁定方向也没用,我手机也是锁定方向的,播放器的锁定开了也是一样,问题之前魅蓝3只要保持手机横屏根本不不存在这样的问题,不锁app都没问题
在线时间0 小时
版本V9.5.2.0.NDACNFA
积分 101, 距离下一级还需 99 积分
积分 101, 距离下一级还需 99 积分
机型未知设备
MIUI版本V9.5.2.0.NDACNFA
周末露脸一下
2018新年勋章
参与回帖活动
点赞金米兔勋章
参加小米上市回帖活动
MIUI 10专属勋章
参加回帖活动
剑侠世界2荣誉内测
MIUI真实车主勋章
参与回帖活动
2017圣诞节勋章
参与回帖活动
全局搜索纪念勋章
参加全局搜索内测
MIUI3亿用户纪念勋章
参与回帖活动
感恩节勋章
参与回帖活动
万圣节勋章
参加回帖活动
米兔月饼勋章
参加回帖活动
MIUI七夕鹊桥勋章
MIUI七周年
MIUI 9纪念勋章
灵魂画手勋章
参与灵魂画手活动
优秀解答组
优秀解答组员专属勋章
已关注微信
关注新浪微博
已关注新浪微博
小米众筹2周年
参加回帖活动
新版论坛APP
更新新版APP
小米7周年勋章
2017米粉节晒单赢专属勋章
“澎湃S1 ”芯片纪念勋章
参与活动回帖可得
参与红米Note 4X活动
2017年小金鸡勋章
回复2016年度评选活动贴
圣诞节勋章
参与圣诞活动
APP 1000万
MIUI论坛APP注册用户突破1000万纪念勋章
小火箭勋章
神舟11号 话题活动
MIUI五周年
MIUI五周年纪念勋章
已关注极客秀微信
关注腾讯微博
已关注腾讯微博
Copyright (C) 2017 MIUI
京ICP备号 | 京公网安备34号 | 京ICP证110507号iOS 问题:横屏录制视频后,进行播放该视频,但是竖屏播放时还是横屏模式,怎么解决? - Code4App.com
横屏录制视频后,进行播放该视频,但是竖屏播放时还是横屏模式,怎么解决?
共有 1 个回答
你好请问你处理了问题了吗?我遇到一样的问题
登录后方可回复
登录后方可回答经验631 米
在线时间391 小时
积分 991, 距离下一级还需 1009 积分
积分 991, 距离下一级还需 1009 积分
机型红米Note-4G版
签到次数22
MIUI版本4.7.4
在图库里查看手机录的视频时,为什么v4版本不能像2.3.5版本一样
当手机锁定为竖屏时,会自动横屏播放视频
希望这点可以和2.3.5一样
分享到微信朋友圈
打开微信,点击底部的“发现”,使用 “扫一扫” 即可将网页分享到我的朋友圈。
经验2346 米
在线时间17508 小时
版本4.10.17
头像被屏蔽
要和谐,要有爱
机型未知设备
签到次数29
MIUI版本4.10.17
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
经验3883 米
在线时间195 小时
版本V7.2.14.0.MAACNDB
积分 4514, 距离下一级还需 486 积分
积分 4514, 距离下一级还需 486 积分
机型未知设备
签到次数118
MIUI版本V7.2.14.0.MAACNDB
我们已经考虑过这个需求,新视频播放器中会解决这个问题——默认播放模式会尽量的把视频充满屏幕
经验1711 米
在线时间21 小时
版本7.5.11
积分 1694, 距离下一级还需 306 积分
积分 1694, 距离下一级还需 306 积分
机型小米手机5
签到次数176
MIUI版本7.5.11
就是 就是 这个问题超不爽
经验1922 米
在线时间183 小时
版本8.4.19
积分 2189, 距离下一级还需 2811 积分
积分 2189, 距离下一级还需 2811 积分
机型小米手机2/2S
签到次数88
MIUI版本8.4.19
恩恩,赶快解决
关注腾讯微博
已关注腾讯微博
关注新浪微博
已关注新浪微博
MIUI 100周
100周发布纪念勋章
1000万用户纪念勋章
MIUI1000万用户纪念勋章
Copyright (C) 2017 MIUI
京ICP备号 | 京公网安备34号 | 京ICP证110507号}

我要回帖

更多关于 安卓手机屏幕录制软件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信