望月孤魂
望月孤魂
  • 发布:2017-04-17 12:50
  • 更新:2017-04-25 14:58
  • 阅读:2731

【报Bug】全屏播放视频的webview调用draw()无法截图

分类:5+ SDK

详细问题描述
[内容]
全屏播放视频的webview调用draw()方法无法截图
重现步骤
[步骤]

[结果]
IOS上截图为黑色图片
Android上截图为白色图片
[期望]
截图时点播放的视频画面
运行环境
[系统版本]
IOS:9.2
Android 5.1.1.1

2017-04-17 12:50 负责人:无 分享
已邀请:
CJH

CJH - 我想要的,我自然会认真

视频播放的时候,默认走的是另一个webview去加载vedio。你draw的那个webview此时为空,所以截取的是空页面

  • 望月孤魂 (作者)

    那怎么能正确的截屏呢?有解决方法吗?

    2017-04-17 23:04

  • CJH

    回复 望月孤魂:可以试试用canvas实现截图

    2017-04-18 10:27

  • 望月孤魂 (作者)

    回复 CJH:有些安卓不支持啊

    2017-04-19 15:00

  • 望月孤魂 (作者)

    回复 CJH: 有些安卓机用canvas还是不行,能不能提供api

    2017-04-20 22:00

望月孤魂

望月孤魂 (作者)

采用原生插件方式也无法截图,代码逻辑如下:

  1. 自定义Application,注册ActivityLifecycleCallbacks来获取当前的Activity,并保存到一个单例中
  2. js端调用截屏方法后插件里通过单例获取当前的Activity,并通过activity.getWindow().getDecorView();获取当前最顶层的view,
  3. 通过如下代码获取截屏的bitmap:
    view.setDrawingCacheEnabled(true);
    view.buildDrawingCache(true);
    final Bitmap bp = view.getDrawingCache();
    Bitmap finalBp = Bitmap.createBitmap(bp);
    view.setDrawingCacheEnabled(false);
    通过以上步骤还是无法截取html5中播放的视频截屏(页面只有一个video标签) @a.m.lancecjhysm@gmail.com
望月孤魂

望月孤魂 (作者)

@CJH

该问题目前已经被锁定, 无法添加新回复