嵌入的YouTube视频不在WKWebView中播放,而完全相同的视频在UIWebView中工作



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

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

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

好的,

我想出了为什么会发生这种情况,以及为什么没有其他人受到它的影响。WKWebView和IOS 8处理了一些未弃用但在IOS 8中行为不同的事情。这是其一。

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

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

我还发现了IOS8与之前版本在使用UIView动画时的另一个区别。 在 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 似乎不再需要它。

要知道视频何时播放,您可以尝试Paulo Fierro的此解决方案。

最新更新