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

时间:2010-09-13 10:30:19

标签: iphone ipad video html5

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

但是,当我在iPhone上打开它时,我只会得到一个播放按钮,当按下该按钮时,会在新窗口上打开原生视频播放器,而不是我的所有内容。

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

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

干杯

8 个答案:

答案 0 :(得分:103)

对,

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

几周之后,他们回到我身边,非常简单地说,我应该在HTML上的视频标签中添加“webkit-playsinline”,并在UIWebView上添加“allowsInlineMediaPlayback”属性。

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

HTML

<video id="player" width="480" height="320" webkit-playsinline>

的OBJ-C

webview.allowsInlineMediaPlayback = YES;

所有工作都很好:)

希望这对某人有帮助,因为它几乎没有文档记录,我唯一能找到“webkit-playsinline”参考的地方就是iAds参考,其中说:“仅限iAds JS。”

答案 1 :(得分:11)

在iOS Safari实现内联视频支持之前,您需要使用支持Web的语言编写视频解码器。现有的视频解码器实现,例如Broadway用于H.264(视频),jsmpeg用于mpeg1,以及ogv.js(视频和声音支持)。

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

供您参考,这些人有prepared a demo个可以在iOS设备上播放的视频。

答案 2 :(得分:2)

在iOS 10 +

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

<video src="file.mp4" playsinline>

在iOS 8和iOS 9中

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

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

答案 3 :(得分:1)

您是否已创建应用或手机游戏?如果你有一个应用程序并使用UIWebView,你应该设置UIWebView的allowInlineMediaPlayback属性..

答案 4 :(得分:1)

在iOS 10中,在HTML UI视频标记中添加'playsinline'属性并未阻止iPhone UIWebview上的全屏播放,直到我还添加了'controls'属性。这就是我的工作方式:

<video width="100%" height="240" controls playsinline>
      <source src="movie.mp4" type="video/mp4" >
</video>

当然,ViewController中还有_webView.allowsInlineMediaPlayback=YES;

答案 5 :(得分:0)

有一些解决方法,我正在开发一个库以自动允许这个功能。然而,直到Apple将safari设置为

webview.allowsInlineMediaPlayback = YES;

然后我们将不得不使用黑客行为。

您可以在此处查看项目:https://github.com/newshorts/InlineVideo,看看它是否符合您的需求。

答案 6 :(得分:0)

只需在config.xml中添加以下内容: df1 = pd.DataFrame(np.abs(np.subtract.outer(df.A, df.A)), df.Dog, df.Dog) df1 否则UIWebView将忽略webkit-playsinline属性。

答案 7 :(得分:-1)

您可以通过将此添加到config.xml轻松地允许此操作: 然后,UIWebView应该遵守webkit-playsinline属性。