不能平滑旋转UIWebView嵌入的Youtube视频

时间:2014-07-22 21:30:15

标签: ios uiwebview youtube-api

我正在使用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 个答案:

答案 0 :(得分:0)

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