ios - 嵌入的 youtube 视频未在 WKWebView 中播放,而完全相同的视频在 UIWebView 中工作

标签 ios youtube wkwebview

当我将网页加载到包含嵌入式 youtube 视频的 UIWebView(甚至是 www.youtube.com 页面)中时,它在 IOS7 或 IOS8 上播放得很好。但是当我切换到 WKWebView (IOS8) 并加载相同的网页时,youtube 视频在第一次点击时根本不播放,然后在后续播放点击时播放一两秒(在 youtube 播放器上)。就像它的缓冲区空间不足并暂停,直到我再次点击播放才播放一秒钟。

在 Safari 中,这个(或任何其他)youtube 视频在同一个 LAN 上从头到尾播放。同样,正如我之前提到的,UIWebView 在 IOS7 或 IOS8 内部没有问题。所以这不是我的无线数据通过放置或连接的问题。

我需要做些什么来让玩家继续前进吗?也许增加 WKWebViews 的流式视频缓冲区空间?

最佳答案

好的,我知道为什么会发生这种情况,以及为什么没有其他人受到它的影响。 WKWebView 和实际上 IOS 8 处理了一些尚未被弃用但在 IOS 8 中行为不同的事情。这就是其中之一。

我的应用程序从麦克风实时采样音频。这在 IOS 的早期版本中很好,但显然在 IOS 8 中,当 WKWebView 启动视频流时,音频样本可以杀死它(只有上帝知道确切的原因)。

但是,我需要能够使用 WKWebView 对音频进行采样,但在播放视频时我不一定需要这样做。因此,挑战将是弄清楚用户何时点击了 youtube 或 vimeo 或显然是任何其他流媒体视频,并在视频流媒体时暂停我的音频采样器。目前我不知道该怎么做。

在使用 UIView 动画时,我还发现了 IOS8 和之前版本之间的另一个区别。在 IOS 8 之前,您可以为 UIWebView 中的图像之间的交换设置动画,并且只要您设置了持续时间并且您不必启用动画,动画就会持续存在。

    [UIView beginAnimations:@"fade1" context:nil];
    [UIView setAnimationDuration:1.0];
    [UIView setAnimationsEnabled:YES];
    [UIView commitAnimations];

现在在 IOS8 中,显然你必须设置一个监听器并在它完成后禁用动画,否则你的 UIView 动画会被应用到各种意想不到的,甚至是原生的行为上。就像手指滚动原生列表或用户在 UIWebView 中垂直滚动网页时一样。禁用动画,这些对其他对象的奇怪影响就会消失。
   [UIView setAnimationsEnabled:NO];

现在我对提交的作用完全感到困惑。 IOS 8 中似乎不再需要它。

关于ios - 嵌入的 youtube 视频未在 WKWebView 中播放,而完全相同的视频在 UIWebView 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28141786/

相关文章:

javascript - Iframes 和 React.js - 如何将 youtube 视频嵌入我的应用程序

ios - WKWebView 动态大小问题

ios - 我可以设置 WKWebView 使用的 cookie 吗?

ios - 上面的 SwiftUI NavigationBarTitle 副标题,就像在 Apple Music 中一样?

ios - 如何保存用户选择的项目

ios - 如果我同时调用 [[RKClient sharedClient] get @"foo.xml"delegate :self] in two UIViewControllers? 会发生什么

php - 我应该使用 <object> 还是 &lt;iframe&gt; 来加载视频?

macos - 使用 bash 从 URL 获取 youtube 视频时长

ios - WKWebView在html中打开src

ios - 在 RestKit 中解析空数组时出错