iOS - 视频播放处理全屏/横屏时候遇见的坑

视频播放想要全屏,使用shouldAutorotate方法禁止主界面,tabbar控制器横屏,导致push进入播放页面不能横屏的问题。。。

- (BOOL)shouldAutorotate {

return NO;

}

- (UIInterfaceOrientationMask)supportedInterfaceOrientations {

return UIInterfaceOrientationMaskAll;

}

后面解决方法:

- (void)fullScreenClick:(UIButton *)sender {

sender.selected = !sender.selected;

if (sender.isSelected) {

_backButton.hidden = YES;

[self forceOrientationLandscapeLeft];

} else {

_backButton.hidden = NO;

[self forceOrientationPortrait];

}

}

//MARK: -- 强制横屏

- (void)forceOrientationLandscapeLeft

{

AppDelegate *appdelegate=(AppDelegate *)[UIApplication sharedApplication].delegate;

appdelegate.isForcePortrait=NO;

appdelegate.isForceLandscape=YES;

[appdelegate application:[UIApplication sharedApplication] supportedInterfaceOrientationsForWindow:self.view.window];

YNCNavigationViewController *navi = (YNCNavigationViewController *)self.navigationController;

navi.interfaceOrientation = UIInterfaceOrientationMaskLandscape;

navi.interfaceOrientationMask = UIInterfaceOrientationMaskLandscape;

//设置屏幕的转向为横屏

[[UIDevice currentDevice] setValue:@(UIDeviceOrientationLandscapeLeft) forKey:@"orientation"];

//刷新

[UIViewController attemptRotationToDeviceOrientation];

}

//MARK: -- 强制竖屏

- (void)forceOrientationPortrait

{

AppDelegate *appdelegate=(AppDelegate *)[UIApplication sharedApplication].delegate;

appdelegate.isForcePortrait=YES;

appdelegate.isForceLandscape=NO;

[appdelegate application:[UIApplication sharedApplication] supportedInterfaceOrientationsForWindow:self.view.window];

YNCNavigationViewController *navi = (YNCNavigationViewController *)self.navigationController;

navi.interfaceOrientation = UIInterfaceOrientationPortrait;

navi.interfaceOrientationMask = UIInterfaceOrientationMaskPortrait;

//设置屏幕的转向为竖屏

[[UIDevice currentDevice] setValue:@(UIDeviceOrientationPortrait) forKey:@"orientation"];

//刷新

[UIViewController attemptRotationToDeviceOrientation];

}

#import <UIKit/UIKit.h>

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;

@property (assign , nonatomic) BOOL isForceLandscape;

@property (assign , nonatomic) BOOL isForcePortrait;

@end

AppDelegate.m

-(UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window{

if (self.isForceLandscape) {

return UIInterfaceOrientationMaskLandscape;

}else if (self.isForcePortrait){

return UIInterfaceOrientationMaskPortrait;

}

return UIInterfaceOrientationMaskPortrait;

}

@interface YNCNavigationViewController : UINavigationController

//旋转方向 默认竖屏

@property (nonatomic , assign) UIInterfaceOrientation interfaceOrientation;

@property (nonatomic , assign) UIInterfaceOrientationMask interfaceOrientationMask;

@end

.m

#pragma mark - 由子控制器控制自己的转屏逻辑

- (BOOL)shouldAutorotate {

return YES;

}

- (UIInterfaceOrientationMask)supportedInterfaceOrientations {

return self.interfaceOrientationMask;

}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {

return self.interfaceOrientation;

}

时间: 2024-10-25 20:02:12

iOS - 视频播放处理全屏/横屏时候遇见的坑的相关文章

开启全屏视频播放,全屏开启ie浏览器的C++代码实现

继续上面一章节的,通过注册表注册私有协议,让Chrome可以打开本地程序,本地程序能够播放一个过场动画,然后全屏跳转到ie浏览器指定页面,怎么实现这样的程序? 需要的准备工作:一段视频,安装好带有sdk的VLC播放器. 新建一个vs 2010空项目,不能是命令行程序,如果是命令行程序,跳转的时候会出现黑框,这是不可忍受的.所以我创建了窗口程序,但是这个窗口时不显示的,它直接调用vlc全屏播放视频,然后开启ie浏览器.那么,在C++中如何调用本地程序呢?有如下3中办法: 1.ShellExecut

JS 取消iOS播放自动全屏:

iOS下浏览器模式下h5播放器强制是全屏的,除非在app下才可以非全屏播放,需要两个配置: (1)播放器添加参数: playsinline:true(我使用的是阿里云的播放器,其他的需要自己找找是那个参数) (2)webview添加参数: webview设置allowsInlineMediaPlayback属性为YES webview.allowsInlineMediaPlayback = YES;

将cell转化为全屏横屏显示

- (void)fullButtonAction:(UIButton *)sender{ UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow; if ([sender.titleLabel.text isEqualToString:@"收起"]) { CGRect inWindowFrame = [self.lastSuperView convertRect:self.frame fromView:keyW

html-----vedio标签(HTML5新标签VIDEO在IOS上默认全屏播放)

今天做一个app时发现一个问题,应用html5中的video标签加载视频,在Android手机上默认播放大小,但是换成iPhone手机上出问题了,默认弹出全屏播放,查找了好多论坛,都没有谈论这个的.然后几经波折终于找到其解决的方法了,在video标签下的source中加入这个-webkit-playsinline=true完美解决全屏问题. 例如: <video width="100%" loop="loop" autoplay controls="

HTML5新标签video在iOS上默认全屏播放

今天做一个app时发现一个问题,应用html5中的video标签加载视频,在Android手机上默认播放大小,但是换成iPhone手机上出问题了,默认弹出全屏播放,查找了好多论坛,都没有谈论这个的.然后几经波折终于找到其解决的方法了,在video标签下的source中加入这个-webkit-playsinline=true完美解决全屏问题. 例如: <video width="100%" loop="loop" autoplay> <source

Android强制横屏+全屏的几种常用方法

全屏: 在Activity的onCreate方法中的setContentView(myview)调用之前添加下面代码 1 requestWindowFeature(Window.FEATURE_NO_TITLE);//隐藏标题 2 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 3 WindowManager.LayoutParams.FLAG_FULLSCREEN);//设置全屏 横屏: 方法1:按照下面代码示例

Android编程实现WebView全屏播放的方法

这篇文章主要介绍了Android编程实现WebView全屏播放的方法,结合实例形式较为详细的分析了Android实现WebView全屏播放的布局与功能相关技巧,需要的朋友可以参考下! 本文实例讲述了Android编程实现WebView全屏播放的方法.分享给大家供大家参考,具体如下: 最近因为项目要用webview加载html5的视频,开始不能全屏播,做了很久才做出来!那按我的理解说下怎么实现全屏吧. 首先写布局文件activity_main.xml: <LinearLayout xmlns:an

如何禁止 iPhone Safari video标签视频自动全屏?

最近做一个移动端微信页面项目,在微信页面中有视频播放,但是需要禁止IOS的自动全屏播放(前提必须使用video标签).如: <video id="post" autoplay loop preload="auto"> <source src="foo.mp4" type="video/mp4"> </video> 在iPhone safari 点击视频会弹出播放器进行全屏播放. 在网上看了看

webview加载网页与全屏播放视频?

上篇我们大致了解了webview的一些属性,以及重要的方法.这篇我们就要一些案列来说明,一般webview最广泛的作用就是,加载一个html的网页(实现与js交互),,webview加载网页网页当中含有视频,webview文件下载等等. 首先我们来了解下webview是如何加载网页的?首先我们看下网页在家的效果? 代码也是比较简单 1 package cn.xiao.webviewplayvideo; 2 import android.app.Activity; 3 import android