iPhone上的HTML5内嵌video与iPad /浏览器
我创build了一个HTML5video播放器(非常简单),可以在iPad和浏览器上完美地工作。
但是,当我在iPhone上打开它时,我只会看到一个播放button,当它按下时,会在新窗口中打开本地video播放器,在我所有的东西之上。
这意味着我无法访问我的自定义控件和时间跟踪(用Javascript编写),因为video现在正在运行孤立。
有没有什么办法可以覆盖苹果的iPhone上的HTML5video控制,并得到它的工作就像在iPad上?
干杯
对,
我没有去这个地方,并提出了一个苹果的错误。
几个星期后,他们回到我身边,非常简单地说,我应该在web上添加“webkit-playsinline”的video标签,并在UIWebView上添加“allowInlineMediaPlayback”属性。
所以最后,这就是它的样子:
HTML
<video id="player" width="480" height="320" webkit-playsinline>
OBJ-C
webview.allowsInlineMediaPlayback = YES;
而且所有的作品都很好:)
希望这可以帮助某人,因为它几乎没有logging,唯一可以find对“webkit-playsinline”的引用是在iAds的参考,它说:“只有iAds JS”。
在iOS Safari实现内联video支持之前,您需要使用Web支持的语言编写video解码器。 现有video解码器的实现方式,如用于H.264(video)的百老汇 ,用于mpeg1的jsmpeg和用于video和声音支持的ogv.js。
请记住,解码video的过程在计算量上很大。 预计相对较慢的FPS(±20)。
为了供大家参考,这些人准备了一个可以在iOS设备上播放的video演示 。
在iOS 10+
苹果在iOS 10的所有浏览器中启用了playsinline
属性,因此可以无缝工作:
<video src="file.mp4" playsinline>
在iOS 8和iOS 9中
您可以通过浏览video来模拟播放而不是实际地.play()
来解决此问题。
您可以使用iphone-inline-video来照顾播放和audio同步(如果有的话),并保持<video>
正常工作。
你有一个创build的应用程序,或者这是为移动Safari浏览器? 如果你有一个应用程序,并使用UIWebView,你应该设置UIWebView的allowsInlineMediaPlayback属性..
有一些工作,我正在一个库,以自动允许这个function。 但是,直到苹果设置Safari浏览器
webview.allowsInlineMediaPlayback = YES;
那么我们将不得不使用黑客的相同的行为。
你可以看看这个项目: https : //github.com/newshorts/InlineVideo ,看看它是否符合你的需求。
只需将以下内容添加到您的config.xml中:否则UIWebView将忽略webkit-playsinline属性。
在iOS 10中,将“playsinline”属性添加到HTML5video标签并不会阻止iPhone UIWebview上的全屏播放,除非我还添加了“controls”属性。 这是我如何工作:
<video width="100%" height="240" controls playsinline> <source src="movie.mp4" type="video/mp4" > </video>
当然,使用_webView.allowsInlineMediaPlayback=YES;
也在ViewController中。
你可以很容易地通过添加到你的config.xml来允许:UIWebView应该尊重webkit-playsinline属性。