【问题标题】:Open iframe video in fullscreen programmatically以编程方式全屏打开 iframe 视频
【发布时间】:2020-04-07 10:58:43
【问题描述】:

我在 webview 中使用 iframe 打开 youtube 视频。它显示视频的默认控制按钮,包括全屏按钮。如何自己调用全屏按钮的功能?例如,我想在横向上全屏显示,但只有通过点击全屏按钮或首次加载时才能全屏打开视频。我需要在播放视频时进入全屏模式。

【问题讨论】:

    标签: ios swift webview youtube wkwebview


    【解决方案1】:

    希望您将 YTPlayer 用于 YouTube 视频。 如果没有,你可以在这里找到播放器 - GithubLink

    对于 YTPlayer,有一个参数 playsinline。 要始终全屏播放,您需要将 playinline 属性设置为 0。类似于:

     let playerVars = [
        "playsinline" : 0
      ]
      player.loadWithVideo(id:movieURL, playerVars:playerVars)
    

    【讨论】:

    • 是的,我使用 YTPlayer,但我必须使用此参数重新加载视频才能全屏显示。我需要在播放视频时进入全屏模式(就像用户只需点击全屏按钮)
    • 在纵向模式下,保存视频当前时间。在方向更改时 - 暂停视频,使用新参数和 url 重新加载 iFrame,寻找视频的最后位置。
    • 谢谢,但我会重新加载视频时会有“延迟”。我想要相同的行为以及只需点击全屏按钮。
    • 关注此内容以获取有关您的问题的更多详细信息link
    【解决方案2】:

    我找到了函数。 webkit的视频标签中有webkitEnterFullScreenhttps://developer.apple.com/documentation/webkitjs/htmlvideoelement

    所以我只需要通过 javascript 获取视频和执行功能:

    playerView.webView?.evaluateJavaScript("document.getElementById('player').contentDocument.getElementsByClassName('video-stream')[0].webkitEnterFullScreen()") { object, error in
           print(error)
    }
    

    【讨论】:

    • 对我来说这个错误发生:可选(错误域=WKErrorDomain Code=4“发生 JavaScript 异常”UserInfo={WKJavaScriptExceptionLineNumber=1,WKJavaScriptExceptionMessage=TypeError:null 不是对象(评估 'document. getElementById('player').contentDocument.getElementsByClassName'), WKJavaScriptExceptionColumnNumber=50, WKJavaScriptExceptionSourceURL="" NSLocalizedDescription=发生 JavaScript 异常})
    • @Newsonic 似乎你有另一个 html 层次结构。尝试通过浏览器页面的源代码搜索视频播放器,然后替换“document.getElementById('player').contentDocument.getElementsByClassName('video-stream')[0]”
    • @Newsonic 你找到解决方案了吗?
    • @ItayBrenner 不幸的是,没有
    猜你喜欢
    • 2021-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-08
    • 2012-07-05
    • 1970-01-01
    • 2018-07-25
    相关资源
    最近更新 更多