首页 文章

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

提问于
浏览
77

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

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

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

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

干杯

8 回答

  • 103

    有一些工作,我正在一个库自动允许这个功能 . 然而,直到Apple将野生动物园设置为

    webview.allowsInlineMediaPlayback = YES;
    

    那么我们将不得不使用hacks来做同样的行为 .

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

  • 0

    对,

    我无处可去,并向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

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

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

    作为参考,这些家伙有prepared a demo的视频可以在你的iOS设备上播放 .

  • 0

    在iOS 10中

    Apple在iOS 10上的所有浏览器中启用了属性 playsinline ,因此无缝工作:

    <video src="file.mp4" playsinline>
    

    在iOS 8和iOS 9中

    你可以通过浏览视频来模拟播放,而不是实际的 .play() 来解决这个问题 .

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

  • 2

    你有一个应用程序创建或这是为移动野生动物园?如果你有一个应用程序并使用UIWebView你应该设置UIWebView的allowInlineMediaPlayback属性..

  • 11

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

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

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

  • 1

    只需在config.xml中添加以下内容: <preference name="AllowInlineMediaPlayback" value="true" /> 否则UIWebView将忽略webkit-playsinline属性 .

  • 0

    您可以通过将其添加到config.xml来轻松地允许此操作:UIWebView应该遵循webkit-playsinline属性 .

相关问题