[发明专利]一种解决SurfaceView渲染器重载视频解码时回收延迟的方法有效

专利信息
申请号: 202111493204.X 申请日: 2021-12-08
公开(公告)号: CN114071229B 公开(公告)日: 2023-06-09
发明(设计)人: 孔世明 申请(专利权)人: 四川启睿克科技有限公司
主分类号: H04N21/4402 分类号: H04N21/4402;H04N21/442;H04N21/414;H04N21/426;H04N21/431;H04N21/433;H04N21/44
代理公司: 四川省成都市天策商标专利事务所(有限合伙) 51213 代理人: 赵以鹏
地址: 610000 四川省成都市中国(四川)*** 国省代码: 四川;51
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 解决 surfaceview 渲染 器重 视频 解码 回收 延迟 方法
【权利要求书】:

1.一种解决SurfaceView渲染器重载视频解码时回收延迟的方法,其特征在于,包括:

步骤1:动态计算RenderView;

步骤2:使用setRenderView动态计算渲染器;

步骤3:renderView的初始化:

步骤4:进行静帧画面的缓存;

所述步骤1,动态计算RenderView包括:

重载setRender方法,接收渲染器类型参数,允许开发人员传入渲染器型号,做分支处理,分别计算两种渲染器类型;

所述两种渲染器类型,具体包括:

①RENDER_TEXTURE_VIEW:创建构造TextureRenderView对象并获取上下文,得到当前视频播放活动页的上下文context,校验当前MediaPlayer是否为null,如果MediaPlayer对象存在,则getSurfaceHolder得到当前RenderView的holder缓存对象并绑定到Mediaplayer上,此时根据新版视频资源路径生成的解码数据流通过setVideoSize获取到视频宽高尺寸,setVideoSampleAspectRatio动态计算宽高比,接收VideoSarNum及VideoSarDen参数,并执行setRenderView重置;

②RENDER_SURFACE_VIEW:构造SurfaceRenderView对象并使用上下文初始化此对象,同步开启线程缓存上一个媒体解码对象holder,使用此holder display当前MediaPlayer参数,使用holder缓存进行RenderView的重置;

所述步骤2:使用setRenderView动态计算渲染器,包括:重新判断当前MediaPlayer对象是否为空,否则setDisplay为null,保证当前画面置空,显示短暂黑屏,构造renderUIView渲染器对象针对此前所有旧版mSHCallback回调实施removeRenderCallback处理,解除与上一个视频的监听绑定,解除成功时将renderUIView的关联解除;

所述步骤3:renderView的初始化,包括:根据处理得到的renderView,需要做clear处理将旧版初始化数据重置为默认状态,调用系统设置执行getEnableSurfaceView开启系统窗口层使用SurfaceView的权限,为mAllRenders添加RENDER_SURFACE_VIEW,如果此权限开启成功并且判断当前Android系统版本大于ICE_CREAM_SANDWICH,则执行最终Ui绑定mAllRenders.add;

所述步骤4:进行静帧画面的缓存,包括:创建MediaMetadataRetriever对象并使用上下文关联,注入当前媒体流资源路径,使用mSeekBarProgress记录当前视频帧画面转Bitmap进度,新建一个主线程监听应用回调挂起生命周期状态,一旦进入onPause流程,马上runThreadUi执行定时器操作。

2.根据权利要求1所述的一种解决SurfaceView渲染器重载视频解码时回收延迟的方法,其特征在于,所述runThreadUi执行定时器操作包括:

获取currentPostion定位当前进度并做getMax处理,该处理生成进度写入SeekBar对象;

使用getFrameAtTime传入currentPostion参数返回一个Bitmap流对象,此时捕获RuntimeException异常,若捕获成功,则执行retriever释放,并将截图保存路径定向为getExternalStorageDirectory拼接Temp索引头。

3.根据权利要求2所述的一种解决SurfaceView渲染器重载视频解码时回收延迟的方法,其特征在于,所述索引头为一个临时内存开辟使用权限,允许FileOutputStream处理此流文件,得到的流对象被执行compress并传入itmap.CompressFormat参数实施画面压缩,得到最终静帧Panel并display到ImageHolder View外层父容器上;当应用重新被唤起时,用户即可看到视频播放暂停状态下的现场帧画面,重新执行播放,将imageholder执行View.GONE类型隐藏并释放掉Bitmap流,即可继续播放。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川启睿克科技有限公司,未经四川启睿克科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202111493204.X/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top