【问题标题】:How to get video position on screen in UIWebview如何在 UIWebview 中获取屏幕上的视频位置
【发布时间】:2014-11-01 13:33:29
【问题描述】:

我是新来的,我读过不同的帖子,但找不到我的问题的答案。我有一个程序可以将 html 内容或网站加载到 UIWebview 中,并且它可以包含视频。

我希望用户能够以编程方式截取 html 和视频以便发送。 在播放视频的地方,我想在上面添加水印,而不是在整个 html 上。我知道以编程方式截取屏幕截图时会出现黑屏,但没关系,我会在之后解决这个问题。

我已关注此帖子https://stackoverflow.com/a/26155153/4096376 我可以使用通知中心访问 AVPlayerItem 并在屏幕上获取视频大小 (playbackSize = playerItem.presentationSize)。但是,我还想知道视频在屏幕上的位置以便放置水印。

似乎获取视频位置的唯一方法是访问 AVPlayer 播放,然后访问 AVPlayerLayer 和 videoRect 属性。这里的 AVPlayer 是 UIWebview 创建的,所以不知道怎么访问。

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

【问题讨论】:

    标签: ios objective-c uiwebview html5-video uiwebviewdelegate


    【解决方案1】:

    经过几天的搜索,我通过评估 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 中有很多视频,您可能需要循环播放以获得正确的视频。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-26
      • 1970-01-01
      • 1970-01-01
      • 2013-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多