当我将网页加载到包含嵌入式 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/