iOS-webView加载视屏横向全屏播放(video)


本文来源地址:http://www.osjoin.com/ios/67.html

项目搞到这个时候,就有点费劲了。
只要你看了洲洲哥的这个文章就木事的啦。

demo地址:https://github.com/7General/shouldAutorotate

情况描述 iOS中vc里放了一个webview这个webview里加载一个连接h5。这个h5中有一个video和一些其他的标签。当让这里的video标签才是重要的。

要求:在点击视屏播放的时候,改视屏要横着全屏播放。当点击完成或者缩小屏幕的时候的就要回到出事位置了。

1:先来看看h5的代码

 <video id="myVideo" width="100%" height="400px" 
poster="/ItaxerGS/ENTYPATH/files/enty/EF20161028548728693668.png" 
src="http://ysyc-winys.chinacloudapp.cn:7001/ItaxerGS/ENTYPATH/files/enty/EF20161028548448333271.mp4" controls autobuffer >
video>

这里看当然要看主要的代码了。

看着没问题吧??
错!!!!
问题来了。这里播放是可以全屏播放,但是是竖着播放的。不和要求啊。。。。

2:分析一下原因白
首先一点击播放就全屏播放,但是是竖着的,似乎不是那么好。要是把当前的window横着显示尼,就可以完成要求。

在看代码之前,先所一下两个重要的通知,
1:UIWindowDidResignKeyNotification 进入全屏
2:UIWindowDidBecomeHiddenNotification 退出全屏
对,这两个很重要!!!!
看看oc代码

首先要在你想要翻转的页面上添加上添加如下代码
当然在viewWillAppear还是在viewDidLoad列为看官就凭自己的想法了。

-(void)RegeistNoticeCenter {
    //将要进入全屏
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(startFullScreen) name:UIWindowDidResignKeyNotification object:nil];
    //退出全屏
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(endFullScreen) name:UIWindowDidBecomeHiddenNotification object:nil];
}

两个实现方法
/*进入全屏/

-(void)startFullScreen {
    NSLog(@"进入全屏");
    UIApplication *application=[UIApplication sharedApplication];
    [application setStatusBarOrientation: UIInterfaceOrientationLandscapeRight];
    application.keyWindow.transform=CGAffineTransformMakeRotation(M_PI/2);
    CGRect frame = [UIScreen mainScreen].applicationFrame;
    application.keyWindow.bounds = CGRectMake(0, 0, frame.size.height + 20, frame.size.width);
}

/*退出全屏/

-(void)endFullScreen {
    NSLog(@"退出全屏XXXX");
    UIApplication *application=[UIApplication sharedApplication];
    [application setStatusBarOrientation: UIInterfaceOrientationLandscapeRight];
    CGRect frame = [UIScreen mainScreen].applicationFrame;
    application.keyWindow.bounds = CGRectMake(0, 0, frame.size.width, frame.size.height + 20);
    [UIView animateWithDuration:0.25 animations:^{
        application.keyWindow.transform=CGAffineTransformMakeRotation(M_PI * 2);
    }];
}

这里注意,我在进入全屏的时候给宽度加了20。在退出全屏的时候,宽度同样加了20。

各位看官留意

在进入全屏的时候宽度加20是为了解决在全屏播放视频时两边的留白问题。
在退出全屏播放视频就是让当前的widow和之前的一样咯

在iOS8.4和8.1亲测试木问题的
当让你要是和《iOS-重力感应》就更完美了
一摇动手机 就可以横着全屏播放咯。。。

如有问题可添加我的QQ1290925041

还可添加QQ:234812704(洲洲哥学院)

欢迎各位一块学习,提高逼格!

也可以添加洲洲哥的微信公众号

更多消息

更多信iOS开发信息 请以关注洲洲哥 的微信公众号,不定期有干货推送:

你可能感兴趣的:(Html5,侵掠如火,Object-C)