在iOS上禁用全屏自动播放

8
我唯一遇到的问题是,我无法禁用全屏播放视频。根据苹果文档,这是默认启用的,需要进行以下设置:
webView.configuration.allowsInlineMediaPlayback = true

基于我的理解,这应该是正确的。但是,这并不起作用,即使在配置正确后,当您按下视频播放按钮时,它仍会在本机全屏播放器中打开。我正在使用WKWebView。 苹果文档
4个回答

19

我在使用Web视图中的视频标签时遇到了问题。

页面上有三个视频,所有视频都会全屏播放。

我通过以下方式解决了这个问题:

1.检查内联播放

enter image description here

2.为视频标签添加 playsinline 属性

<video src="your_videosrc" autoplay playsinline></video>

很高兴有人提供帮助 :)


3
除了这个解决方案,其他的都没有起作用!这应该就是答案。 - Fabiosoft
1
我已经仔细查看了至少10天,结果发现这很简单。非常感谢您的帮助,真的非常感激。 - oğuz
我是iOS的新手,可以有人指导我在哪里找到设置选项来选择吗? - Karan Sethi

14

播放内联视频需要满足两个先决条件:

  1. 设置配置
  2. 提供正确格式的链接

1. 设置配置

WKWebView的配置需要在初始化时进行设置。稍后修改allowsInlineMediaPlayback将不起作用:

let configuration = WKWebViewConfiguration()
configuration.allowsInlineMediaPlayback = true

let webView = WKWebView(frame: CGRect(x: 0, y: 0, width: view.frame.width, height: view.frame.height), configuration: configuration)

view.addSubview(webView)

2. 提供正确格式的链接

为了让网页视图知道视频应该开始内联播放,需要设置适当的URL参数。

为此,您只需追加?playsinline=1即可。

例如:

webView.load(URLRequest(url: URL(string: "https://www.youtube.com/watch?v=OYbXaqQ3uuo?playsinline=1")!))

2
是的,这就是我想说的,它不允许在视频播放器中播放,而是在所有情况下都转到本地,因此每当您点击播放时,它会自动切换到全屏本地播放器。 - Martin Dichtler
在这种情况下,尝试在正在加载的URL后面添加?playsinline=1 - JP_
当然,让我试一下。 - Martin Dichtler
那真的有效,非常感谢您的帮助!请将其作为答案提交,以便我可以接受它! - Martin Dichtler
在Interface Builder中设置WKWebView的“Inline Playback”属性同样有效。我将其与playsinline属性一起使用:<video playsinline>...</video> - Daniel Randall
显示剩余2条评论

4

从 Storyboard 中,您可以勾选/取消勾选“内联播放”,以停止/允许全屏播放。


0

我有一个类似的问题,但是稍有不同。我们有一个WkWebView加载了一个移动友好的Web应用程序,在不同的地方有指向视频的链接,在其中它们可以很好地工作,因为它们会打开默认的iOS视频播放器以便用户可以全屏观看。这非常不错。然而,在我们的一部分中,我们有一些播客。我想为这些音频流使用流媒体提供商的JavaScript播放器,但当我按下播放按钮时,本机iOS视频播放器接管了控制权。我们不希望这样,因为提供者的播放器有一些我们需要的功能。我已尝试添加'?playsinline=1',但对回放没有任何影响。在不影响应用程序其他区域的视频回放的情况下,这是否有可能完成?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接