我可以避免在iPhone或Android上使用HTML5的原生全屏video播放器吗?
我已经构build了一个Web应用程序,它使用HTML5标记和JavaScript代码来渲染与正在运行的video同步的其他内容。 它适用于桌面浏览器:Firefox,Chrome和Safari。 在iPhone或DroidX上,原生video播放器会popup并接pipe屏幕,从而模糊了我想要与video同时显示的其他dynamic内容。
有没有办法解决? 如果有必要的话,我会弄清楚如何为这两个平台编写原生应用程序,但是如果我能坚持使用HTML5 / JavaScript,这将节省大量的工作。
有一个属性可以启用/禁用iOSnetworking浏览器的在线媒体播放(如果您正在编写本机应用程序,它将是UIWebView的allowsInlineMediaPlayback
属性)。 在iPhone上默认设置为NO
,但在iPad上设置为YES
。
幸运的是,您还可以按如下方式在HTML中调整此行为:
<video id="myVideo" width="280" height="140" webkit-playsinline>
…希望能够为你解决这个问题。 我不知道它是否会在你的Android设备上工作。 这是一个webkit属性,所以它可能。 值得一去,无论如何。
在iOS 10+
苹果在iOS 10的所有浏览器中启用了playsinline
属性,因此可以无缝工作:
<video src="file.mp4" playsinline>
在iOS 8和iOS 9中
简短的回答:使用iphone-inline-video ,它使内联播放和同步audio。
长答案:您可以通过浏览video来模拟播放而不是实际地.play()
来解决这个问题。
这里有一个苹果开发者链接明确地说 –
在iPhone和iPod touch上,它们是小屏幕设备,“video不在网页内”
特定于Safari设备的注意事项
现在 :
-
webkit-playsinline
属性适用于iOS上的HTML5video,但仅适用于将网页作为webapp保存到主屏幕的情况 – 如果在Safari中打开页面 - 对于具有WebView(或与HTML,CSS,JS混合应用程序)的本机应用程序,
UIWebView
允许allowsInlineMediaPlayback
联方式播放video,但只有在将UIWebView
类的allowsInlineMediaPlayback
属性设置为true
根据这个页面http://developer.apple.com/library/safari/#documentation/appleapplications/reference/SafariHTMLRef/Articles/Attributes.html它只是可用如果(只在UIWebView中启用allowInlineMediaPlayback属性设置为YES 。)我在移动Safari浏览器中了解到,这是iPad上的YES和iPhone和iPod Touch上的NO。
我不知道android,但iPhone或iPod touch上的Safari会因为小屏幕尺寸而全屏播放所有video。 在iPad上将播放页面上的video,但允许用户使其全屏。
在iOS 10 beta 4中<video src="file.mp4" webkit-playsinline="true" playsinline="true">
5中的正确代码是<video src="file.mp4" webkit-playsinline="true" playsinline="true">
webkit-playsinline适用于iOS 10-,playsinline适用于iOS 10 +。
通过https://webkit.org/blog/6784/new-video-policies-for-ios/查看详情;