我创建了一个HTML5视频播放器(非常简单),可以在iPad和浏览器上完美运行。
但是,当我在iPhone上打开它时,我只会得到一个播放按钮,当按下该按钮时,会在新窗口上打开原生视频播放器,而不是我的所有内容。
这意味着我无法访问自定义控件和时间跟踪(用Javascript编写),因为视频现在正在运行。
有没有办法在iphone上覆盖Apple对HTML5视频的控制,让它像在ipad上一样工作?
干杯
答案 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)
Apple在iOS 10上的所有浏览器中都启用了属性playsinline
,因此可以无缝运行:
<video src="file.mp4" playsinline>
您可以通过略过视频模拟播放而不是实际.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属性。