问题描述:
在Android中,视频可以正常在H5页面局部播放。
iOS中则自动切换至全屏模式,需要禁止视频自动全屏播放。
解决方法:
H5端:
iOS10以上H5视频不自动全屏播放识别 playsinline这个属性
iOS10以下H5视频不自动全屏播放识别 webkit-playsinline这个属性
x5-video-player-type='h5' x5-video-player-fullscreen='true' playsinline webkit-playsinline
注意::在客户端设置了相关属性之后,网页就可以通过
playsinline='true' webkit-playsinline='true'
来控制视频在网页内播放
playsinline='false' webkit-playsinline='false'
来控制视频全屏播放
iOS 端实现代码:
UIWebView
webView.allowsInlineMediaPlayback = YES;
WKWebView
WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init];
configuration.allowsInlineMediaPlayback = YES;
_webview = [[WKWebView alloc] initWithFrame:CGRectMake(0, 0, ScreenWidth, ScreenHeight - 88) configuration:configuration];
注意::这里需要将属性设置在初始化的
WKWebViewConfiguration
对象上,因为_webview. configuration
为原始对象拷贝的原因,所以通过以下方式设置相应属性并不会生效:_webview.configuration.allowsInlineMediaPlayback = YES; /*! @abstract A Boolean value indicating whether HTML5 videos play inline (YES) or use the native full-screen controller (NO). @discussion The default value is NO. */ @property (nonatomic) BOOL allowsInlineMediaPlayback;
参考:
- https://www.jianshu.com/p/69ab92267343
- https://blog.csdn.net/qq_40190624/article/details/100524387
- https://developer.apple.com/documentation/webkit/wkwebviewconfiguration/1614793-allowsinlinemediaplayback
- https://stackoverflow.com/questions/6039909/html5-full-screen-video
- https://www.jianshu.com/p/f313bd152b74