我可以避免在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

我不知道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/查看详情;