Surface先进行lockCanvas,随后绘制视频引发的IlleageArgumentException

2023-11-02

表现形式

在SurfaceView或者SurfaceTextture中,先对拿到serface,对其lockCanvas获得画布,绘画解除锁定后,又播放视频。出现了崩溃。

思路来源

  • https://stackoverflow.com/questions/48988467/using-a-surface-in-mediaplayer-after-it-has-been-manually-drawn-on
  • https://source.android.com/devices/graphics/arch-sh

解决方法

机制问题,无解决方法

原因

When you lock a Surface for Canvas access, the “CPU renderer” connects to the producer side of the BufferQueue and does not disconnect until the Surface is destroyed. Most other producers (like GLES) can be disconnected and reconnected to a Surface, but the Canvas-based “CPU renderer” cannot. This means you can’t draw on a surface with GLES or send it frames from a video decoder if you’ve ever locked it for a Canvas. — 官方文档(上面第二个链接)

机翻:

如果您曾调用过 lockCanvas(),则无法使用 GLES 在 Surface 上绘图或从视频解码器向其发送帧。lockCanvas() 会将 CPU 渲染程序连接到 BufferQueue 的生产方,直到 Surface 被销毁时才会断开连接。与大多数生产方(如 GLES 或 Vulkan)不同,基于画布的 CPU 渲染程序无法在断开连接后重新连接到 Surface。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Surface先进行lockCanvas,随后绘制视频引发的IlleageArgumentException 的相关文章

随机推荐

  • 订单系统、报名、预约、表单系统 定制开发功能展示

    安装教程环境说明 正常情况下PHP5 3 5 6 阿帕奇 mysql安装即可 安装说明 1 上传源码压缩包到网站根目录 这个请去问下空间商哪个是根目录 每家服务器商不一样 我们也不能确定 请确定是根目录再安装 2 解压源码到根目录然后打开网
  • Qt TableWidget插入QComboBox下拉框

    话不多说 以下是效果图 直接上代码 初始化QTableWidget Function partTableInit Description 初始化tablewidget 并设置表头列文字 Input QTableWidget tableObj
  • Failed to calculate the value of task ‘:xxx DebugJavaWithJavac‘ property ‘options.generatedSourceOut

    Caused by org gradle api internal provider AbstractProperty PropertyQueryException Failed to calculate the value of task
  • LightGBM的黑科技--plot函数

    本教程教萌新如何使用lightgbm里面可视化函数 作者 JasonChen 文章内容概览 保留训练结果 plot metric 函数的使用 重要 plot importance 函数的使用 重要 plot tree 函数的使用 可选 cr
  • Iterator对象

    Iterator对象 是一个引用型变量 他存在的意义在于 为了遍历容器对象中的元素而不暴露容器对象内部的细节 iterator 方法是容器变量使用 返回一个Iterator对象 该对象也是一个容器 因为他里面存放着即将访问的容器对象的元素
  • python怎么统计单词总数_利用Python的 counter内置函数,统计文本中的单词数量

    counter是 colletions内的一个类 可以理解为一个简单的计数器 可以统计字符出现的个数 例子如下 importcollections str1 a a b d m collections Counter str1 print
  • SSD算法详解 及其 keras实现 (下)

    在上一篇的博客讲述了SSD的原理 这一篇主要是讲解keras的实现 keras代码的github地址为 点击打开链接 model 的框架实现 ssd py 先给出了改变后的VGG16的实现 def SSD300 input shape nu
  • MybatisPlus多表连接查询

    一 序言 一 背景内容 软件应用技术架构中DAO层最常见的选型组件为MyBatis 熟悉MyBatis的朋友都清楚 曾几何时MyBatis是多么的风光 使用XML文件解决了复杂的数据库访问的难题 时至今日 曾经的屠龙者终成恶龙 以XML文件
  • FPGA网络通信 ——RGMII传输

    一 RGMII特点 RGMII采用双沿传输 DDR接口 在CLK的上升沿和下降沿都各传输一次数据 同时 TX ER 和RX ER 信号编码进了TX CTL 和RX CTL 信号中 不再使用独立的信号线 这两个信号传输也是通过上升和下降沿来区
  • vue3 中绑定多个ref对象

    for循环中 如果给每一个元素绑定一个特定的ref值 ref xxx 那么就要定义N多个变量来分别接受它们 显然不现实 1 在setup中定义一个常量xxxrefs用来接受所有for循环设置ref的元素 ref中必须要是空数组 const
  • python3安装matplotlib的两种方法_如何安装matplotlib与Python3.2

    Matplotlib支持python 3 x版本1 2 发布于2013年1月 要安装它 看看installation instructions 一般来说 调用pip install matplotlib或使用您的首选机制 conda hom
  • c语言编程人狼羊菜过河,基于visual Studio2013解决C语言竞赛题之1079狼羊过河

    题目 解决代码及点评 79 猎人过河 猎人要把一只狼 一头羊和一些白菜从河的左岸带到右岸 但他的船太小 一次只能带一样 因为狼要吃羊 羊会吃白菜 所以狼和羊 羊和白菜不能在无人监视的情况下相处 问猎人怎样才能达到目的 请编程序实现猎人过河
  • SpringBoot注解使用redis做缓存总结

    前言 个人工作中对此相关内容的总结 部分资料来源于网上 一 Cacheable CachePut CacheEvict 注释介绍 Cacheable Cacheable 的作用 主要针对方法配置 能够根据方法的请求参数对其结果进行缓存 主要
  • nmtui 和 nmcli 命令 配置网络

    目录 一 nmtui命令 修改静态IP地址 二 nmcli命令 基于命令行配置网卡参数 三 绑定两块网卡 1 创建出一个bond网卡 2 向bond0设备添加从属网卡 3 配置bond0设备的网络信息 4 启动和测试 一 nmtui命令 修
  • 第001天:第一行Android代码

    1 1 了解全貌 Android王国简介 Android从面世以来到现在已经发布了二十几个版本了 在这几年的发展过程中 谷歌为 Android王国建立了一个完整的生态系统 手机厂商 开发者 用户之间相互依存 共同推进着 Android的蓬勃
  • 人体姿态识别(毕业设计+代码)

    模型效果 从下图可以清楚的看到 提出的模型可以对人眼以及嘴巴进行描述 最终的是对每个关节点进行了划分和表示 前言 从视频中进行人体姿势估计在各种应用中都扮演着关键角色 例如量化身体锻炼 手语识别和全身手势控制 例如 它可以成为瑜伽 舞蹈和健
  • windows内核API种类

    在初学windows驱动时 开始除了要学习驱动的加载 调试等准备工作后 就要学习内核的API了 作为初学者在刚刚看到那些很陌生的函数时可能会感到很迷茫 其实这些都是很正常的 就像我们在刚刚接触编程时那样 今天我在我第一篇正式的博文中总结一下
  • 【VUE】基于VUE的图片预览插件 vue-photo-preview

    使用方法 1 安装 npm install vue photo preview save 2 在 main js 中引入配置文件 import vuePicturePreview from vue picture preview Vue u
  • yolov5lite v1.4 踩坑记录

    yolov5lite v1 4 1 报错 AttributeError module numpy has no attribute int np int was a deprecated alias for the builtin int
  • Surface先进行lockCanvas,随后绘制视频引发的IlleageArgumentException

    表现形式 在SurfaceView或者SurfaceTextture中 先对拿到serface 对其lockCanvas获得画布 绘画解除锁定后 又播放视频 出现了崩溃 思路来源 https stackoverflow com questi