iPhone与iPad /浏览器上的HTML5内联视频

And*_*dre 77 iphone video html5 ipad

我创建了一个HTML5视频播放器(非常简单),可以在iPad和浏览器上完美运行.

然而,当我在iPhone上打开它时,我只得到一个播放按钮,当按下该按钮时,在我的所有东西之上打开一个新窗口上的原生视频播放器.

这意味着我无法访问我的自定义控件和时间跟踪(用Javascript编写),因为视频现在正在运行.

有没有办法覆盖苹果对iphone上的HTML5视频的控制,让它像在ipad上一样工作?

干杯

And*_*dre 104

对,

我无处可去,并向Apple提出了一个错误.

几个星期后,他们回到我身边,非常简单地说,我应该在HTML上的视频标签中添加"webkit-playsinline",以及在UIWebView上添加"allowsInlineMediaPlayback"属性.

所以最后,这就是它的样子:

HTML

<video id="player" width="480" height="320" webkit-playsinline>
Run Code Online (Sandbox Code Playgroud)

OBJ-C

webview.allowsInlineMediaPlayback = YES;
Run Code Online (Sandbox Code Playgroud)

一切正常:)

希望这有助于某人,因为它几乎没有文档,我唯一可以找到"webkit-playsinline"参考的地方是iAds参考,其中说:"仅限iAds JS".

  • 我只想在你的答案中澄清一些内容......如果你正在开发一个仅限网络的解决方案(在这种情况下UIWebView不会发挥作用)那么这将不起作用,对吧? (26认同)
  • 如果您使用的是Phonegap/Cordova,您可以在config.xml文件中启用内联媒体播放`<preference name ="AllowInlineMediaPlayback"value ="true"/>`并将webkit-playsinline添加到`<video>`标签 (9认同)
  • @Andre:请你帮我解释一下,如何在我的纯HTML5网页上使用obj-c?我想在我的html5网站的视频播放器中在iPhone上播放视频. (8认同)
  • 谢谢!我一直在寻找这个信息. (2认同)
  • @Andre它仍然可以在UIWebView中运行.我最近在一个应用程序中尝试过它,所以我知道它确实如此.这是我的错,我误解了OP的问题,并认为他试图在移动Safari(而不是UIWebView)中这样做,这是我目前正在寻找的解决方案.早在2011年,我就可以使用自定义视频控件在Safari中播放视频内联,但这不再适用. (2认同)

Gaj*_*jus 11

在iOS Safari实现内联视频支持之前,您需要使用Web支持的语言编写视频解码器.有视频解码器,如现有实现百老汇的H.264(视频),jsmpeg为MPEG1,和ogv.js(视频和声音的支持).

请记住,解码视频的过程计算量很大.预计相对较慢的FPS(±20).

作为参考,这些人准备了一个可以在iOS设备上播放的视频演示.


fre*_*nte 5

在 iOS 10+ 中

Apple 在 iOS 10 上的所有浏览器中启用了该属性playsinline,因此可以无缝运行:

<video src="file.mp4" playsinline>
Run Code Online (Sandbox Code Playgroud)

在 iOS 8 和 iOS 9 中

您可以通过浏览视频而不是实际.play()播放来模拟播放来解决此问题。

您可以使用iphone-inline-video来处理播放和音频同步(如果有),并且它可以保持<video>正常工作。