2014-11-01 88 views
0

我在这里是新手,我已阅读不同的帖子,但无法找到我的问题的答案。我有一个程序,我加载HTML内容或网站到UIWebview,它可以有视频。如何在UIWebview中获取屏幕上的视频位置

我希望用户能够以编程方式执行html和视频截图以便发送。 视频正在播放的地方我想添加一个水印,但不是整个html。我知道,当以编程方式进行截图时,我会得到黑屏,但没关系,我会在那之后解决这个问题。

我跟着这篇文章https://stackoverflow.com/a/26155153/4096376我能够使用通知中心访问AVPlayerItem并获得屏幕上的视频大小(playbackSize = playerItem.presentationSize)。不过,我也想知道屏幕上的视频位置以放置水印。

看来获得视频位置的唯一方法是有权访问AVPlayer播放AVPlayerLayer和videoRect属性。这里AVPlayer是由UIWebview创建的,所以我不知道如何访问它。

任何人都知道如何实现这个或更好的方法?非常感谢。

回答

0

经过几天的搜索,我发现更简单的解决方案,通过评估html本身来获取视频元素的位置。

int videoYPosition = [[webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('video')[0].getBoundingClientRect().top + window.pageYOffset - document.documentElement.clientTop"] intValue]; 
NSLog(@"videoYPosition: %d", videoYPosition); 

int videoXPosition = [[webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('video')[0].getBoundingClientRect().left + window.pageXOffset - document.documentElement.clientLeft"] intValue]; 
NSLog(@"videoXPosition: %d", videoXPosition);  

如果您的html上有很多,您可能需要循环才能获得正确的视频。