UIWebView 嵌入的 Youtube 视频旋转不流畅

Posted

技术标签:

【中文标题】UIWebView 嵌入的 Youtube 视频旋转不流畅【英文标题】:Not smooth rotation of UIWebView embedded Youtube video 【发布时间】:2014-07-22 21:30:15 【问题描述】:

我正在使用 Youtube ios 帮助程序库在我的应用程序中内嵌播放 YT 视频。我的应用程序通常运行流畅,视频加载和播放正常。我有一个问题,当我旋转手机(模拟器)时,视频会离开框架。因此,如果我以纵向加载视频,则视频将以纵向居中,但当我旋转为横向时,视频将位于底角。

为了解决这个问题,我现在用一些 javascript 来调整播放器的大小。

- (void)setSizeOfIFrameToWidth:(int)width Height:(int)height 
[self.webView stringByEvaluatingJavaScriptFromString:
    [NSString stringWithFormat:@"player.setSize(%d, %d)", width, height]];

(在我编辑的 YTPlayer 类中)。

这工作正常并在 youtubeView 的所有者中被调用:

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration 

    [self.youtubeView setSizeOfIFrameToWidth:self.youtubeView.frame.size.width Height:self.youtubeView.frame.size.height];
    [super willAnimateRotationToInterfaceOrientation:toInterfaceOrientation duration:duration];
    [self.youtubeView setNeedsDisplay];

(我不确定最后setNeedsDisplay 行是否有任何作用)

但是现在,当它旋转时,首先视图在侧面被切断,然后旋转笨拙。它看起来非常波涛汹涌。这是我能得到的最好的截图:

还有

注意在旋转过程中视频是如何被剪切的。

(为了记录,我不拥有播放器中视频的权利。来自这里https://www.youtube.com/watch?v=Q78COTwT7nE)

【问题讨论】:

【参考方案1】:

使用$(window).trigger('resize'); 应该会有所帮助。

【讨论】:

以上是关于UIWebView 嵌入的 Youtube 视频旋转不流畅的主要内容,如果未能解决你的问题,请参考以下文章

如何从 UIWebView 嵌入式 YouTube 视频播放接收 NSNotifications

为啥 Youtube 视频没有填满 UiWebView?

在没有全屏的情况下在 UIWebView 中播放 Youtube 视频

IOS6 横向在仅纵向 iPhone 应用程序中从 uiwebview 播放嵌入的 youtube 视频

Google cast youtube 嵌入视频

如何在用户不触摸 UIWebView 本身的情况下启动 YouTube 视频?