使用webview播放视频,全屏状态下适应横屏播放

原创 2015年07月06日 17:06:29

   最近在做播放视频的功能,选择在webview中加载视频,视频可以全屏播放,但是当设备横放时,播放内容不能随着设备的旋转而转成横屏的全屏播放模式。需要的效果是:应用其他页面只能是竖屏模式,当全屏播放视频时,要适应横屏。

  由于使用webview加载视频,不能直接控制播放视频的控件,没有办法知道视频是否进入全屏模式。

  经过网上一番搜索,找到以下几个方法,使用通知获取进入全屏状态:

一:

<span style="font-family:KaiTi_GB2312;font-size:14px;">    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(videoStarted:) name:MPMoviePlayerDidEnterFullscreenNotification object:nil];// 播放器即将播放通知
    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(videoFinished:) name:MPMoviePlayerWillExitFullscreenNotification object:nil];// 播放器即将退出通知</span>
二:
<span style="font-family:KaiTi_GB2312;font-size:14px;">    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(videoStarted:) name:@"UIMoviePlayerControllerDidEnterFullscreenNotification" object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(videoStarted:) name:@"UIMoviePlayerControllerDidExitFullscreenNotification" object:nil];
</span>

以上两种方法在iOS8中都接收不到通知,用下面这种方法可以


<span style="font-family:KaiTi_GB2312;font-size:14px;">[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(videoStarted:) name:UIWindowDidBecomeVisibleNotification object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(videoFinished:) name:UIWindowDidBecomeHiddenNotification object:nil];</span>

收到通知执行方法:

-(void)youTubeStarted:(NSNotification *)notification

{

    NSLog(@"全屏开始");

    AppDelegate *app = (AppDelegate *)[[UIApplication sharedApplicationdelegate];


    app.isFull = YES;

    

}


-(void)youTubeFinished:(NSNotification *)notification{

    NSLog(@"全屏结束");

    AppDelegate *appDelegate =(AppDelegate *) [[UIApplication sharedApplicationdelegate];

    

    appDelegate.isFull =NO;

    

    if ([[UIDevice currentDevicerespondsToSelector:@selector(setOrientation:)]) {

        

        SEL selector = NSSelectorFromString(@"setOrientation:");

        

        NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[UIDevice instanceMethodSignatureForSelector:selector]];

        

        [invocation setSelector:selector];

        

        [invocation setTarget:[UIDevice currentDevice]];

        

        int val =UIInterfaceOrientationPortrait;


        [invocation setArgument:&val atIndex:2];

        

        [invocation invoke];

        

    }

}

然后在appdelegate里面:
.h

  1. @interface AppDelegate :UIResponder  
  2. {  
  3. BOOL _isFull; // 是否全屏  
  4. }  
  5. @property (nonatomic)BOOL isFull

.m
  1. - (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {  
  2.   
  3. if(_isFull)  
  4.   
  5. returnUIInterfaceOrientationMaskAll;  
  6.   
  7. returnUIInterfaceOrientationMaskPortrait;  
  8.   
  9. }


相关文章推荐

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Android WebView 视频播放解决

最近项目中遇到WebView 播放视频需求(H5 video 标签),那么问题来了视频无法全屏播放等。 对于这种视频播放问题有多种方案可以解决,例如: 1.实现一个网络视频播放器来播放网络视频(这...

Android用Webview播放优酷视频全屏问题

参考demo: http://download.csdn.net/download/mantianku/4831860 在播放优酷视频, 点击全屏的时候, 会黑屏, 而不显示需要全屏的view  ...
  • lllkey
  • lllkey
  • 2014年01月18日 16:36
  • 25740

iOS wkwebkit 播放HTML5 视频 全屏问题解决

ios 使用html5 的video标签播放视频 全屏问题

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

项目搞到这个时候,就有点费劲了。 只要你看了洲洲哥的这个文章就木事的啦。 demo地址:https://github.com/7General/shouldAutorotate 情况描述 iOS中...

菜鸟学android——webview播放网络视频,由竖屏转换为横屏全屏播放

近来做一个应用,遇到了这样的问题,介绍一下场景吧: 从论坛上抓取
  • sollian
  • sollian
  • 2014年05月29日 16:27
  • 4639

Android WebView在屏幕旋转后,不重新加载URL及禁止横屏的方法

最近在开发一个web app,发现横屏后,URL会重新加载,体验很不好。 需要更改AndroidManifest.xml文件,在需要禁止重新加载的Activity中增加android:configC...

WKWebView的使用-适应屏幕宽度

最近在app中,需要打开一个本地的html文件,在iOS 8以后苹果推出了一个新的框架Wekkit,用WKWebView代替了UIWebView,鉴于WKWebView“占内存少,速度快”的优点,所以...

WebView中的视频全屏的相关操作

最近工作中,基本一直在用WebView,今天就把它整理下: WebView 顾名思义,就是放一个网页,一个看起来十分简单,但是用起来不是那么简单的控件。 首先你肯定要定义,初始化一个webview,其...

Android WebView播放视频(包括全屏播放)

最近项目开发中用到了WebView播放视频的功能,总结了开发中犯过的错误,这些错误在开发是及容易遇到的,所以我这里总结了一下,希望大家看到后不要再犯类似的错误,尽可能提高开发效率: 这个Demo我这...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用webview播放视频,全屏状态下适应横屏播放
举报原因:
原因补充:

(最多只允许输入30个字)