2014-11-01 87 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上有很多,您可能需要循環才能獲得正確的視頻。