一种屏幕录制方法及装置、存储介质制造方法及图纸

技术编号:29531894 阅读:17 留言:0更新日期:2021-08-03 15:19
本申请公开了一种屏幕录制方法及装置、存储介质,所述方法包括:基于屏幕录制指令,确定待录制内容;根据当前的运行环境,为待录制内容确定抓屏策略;在抓屏策略中选取优先级最高的抓屏策略,创建优先级最高的抓屏策略对应的抓屏对象,并对抓屏对象进行初始化;确定优先级最高的抓屏策略对应的抓屏对象初始化是否成功,不成功时创建次优先级的抓屏策略对应的抓屏对象,并确定次优先级的抓屏策略对应的抓屏对象是否初始化成功,不成功时继续下一优先级的抓屏策略;当成功创建抓屏对象后,以成功创建的抓屏对象抓取数据,作为录制屏幕数据。本申请提升了抓屏效率及效果。

【技术实现步骤摘要】
一种屏幕录制方法及装置、存储介质
本申请实施例涉及屏幕录制技术,尤其涉及一种屏幕录制方法及装置、存储介质。
技术介绍
目前的录屏功能,需要用户选择待录屏对象,并需要用户为待录屏对象确定相应的抓屏方式,而确定抓屏方式时,需要一定的抓屏知识,不然为待录屏对象确定的抓屏方式不一定适于待录屏对象,或者录屏效果不佳;若用户未为待录屏对象确定抓屏方式,则需要系统自动确定录屏方式,而系统为待录屏对象确定的抓屏方式非常不智能,只能确定待录屏对象所支持的或预设的抓屏方式进行确定,当前系统中可能支持更适于待录屏对象的录屏方式,或者当前系统中具有录屏效果更佳的抓屏方式,但自动确定抓屏方式不可能为待录屏对象确定这些更适合的抓屏方式。
技术实现思路
有鉴于此,本申请实施例提供一种屏幕录制方法及装置、存储介质,能根据屏幕录制指令确定出待录制内容,并结合当前的运行环境为待录制内容确定抓屏策略,基于抓屏策略创建相应的抓屏对象,实现对待录屏对象的屏幕录制。根据本申请的第一方面,提供一种屏幕录制方法,包括:基于屏幕录制指令,确定待录制内容;根据当前的运行环境,为所述待录制内容确定抓屏策略;在所述抓屏策略中选取优先级最高的抓屏策略,创建优先级最高的抓屏策略对应的抓屏对象,并对所述抓屏对象进行初始化;确定优先级最高的抓屏策略对应的所述抓屏对象初始化是否成功,不成功时创建次优先级的抓屏策略对应的抓屏对象,并确定次优先级的抓屏策略对应的抓屏对象是否初始化成功,不成功时继续下一优先级的抓屏策略,直至为所述抓屏策略创建适用的抓屏对象或所有抓屏策略均尝试完毕;当成功创建抓屏对象后,以成功创建的抓屏对象抓取数据,作为录制屏幕数据。作为一种实现方式,所述基于屏幕录制指令,确定待录制内容,包括:获取屏幕录制指令中的待录制内容,所述待录制内容为以下至少之一:应用界面、操作系统桌面。作为一种实现方式,所述为所述抓屏策略创建抓屏对象,包括:待录制内容为游戏时,为游戏创建多个抓屏对象,对所述多个抓屏对象分别进行初始化;使用全局钩子监听所创建的所述多个抓屏对象,以在所述多个抓屏对象中确定产生视频渲染数据的第一抓屏对象,判定游戏使用所述第一抓屏对象对应的游戏引擎进行视频渲染,通过所述第一抓屏对象复制数据,作为录制屏幕数据进行存储。作为一种实现方式,所述为游戏创建多个抓屏对象,包括:为游戏创建Direct3D对象,所述Direct3D对象包括directx8、directx9、directx10、directx11、directx12。作为一种实现方式,所述为所述抓屏策略创建抓屏对象,包括:待录制内容为操作系统桌面时,确定当前操作系统的版本号,操作系统为windows7及以下系统时,创建DWM抓屏对象,使用全局钩子监听DWM抓屏对象,以捕获桌面渲染数据;若DWM抓屏对象创建失败,则创建GDI抓屏对象,调用windows的bitblt函数截取桌面渲染数据;操作系统为windows8及以上系统时,调用CreateTexture2D函数创建DXGI抓屏对象,以捕获桌面渲染数据,若DXGI抓屏对象创建失败或创建后无法捕获桌面渲染数据,则创建GDI抓屏对象,调用windows的bitblt函数截取桌面渲染数据。根据本申请的第二方面,提供一种屏幕录制装置,包括:第一确定单元,用于基于屏幕录制指令,确定待录制内容;第二确定单元,用于根据当前的运行环境,为所述待录制内容确定抓屏策略;创建单元,用于在所述抓屏策略中选取优先级最高的抓屏策略,创建优先级最高的抓屏策略对应的抓屏对象,并对所述抓屏对象进行初始化;确定优先级最高的抓屏策略对应的所述抓屏对象初始化是否成功,不成功时创建次优先级的抓屏策略对应的抓屏对象,并确定次优先级的抓屏策略对应的抓屏对象是否初始化成功,不成功时继续下一优先级的抓屏策略,直至为所述抓屏策略创建适用的抓屏对象或所有抓屏策略均尝试完毕;录制单元,用于当所述创建单元成功创建抓屏对象后,以成功创建的抓屏对象抓取数据,作为录制屏幕数据。作为一种实现方式,所述第一确定单元,还用于:获取屏幕录制指令中的待录制内容,所述待录制内容为以下至少之一:应用界面、操作系统桌面。作为一种实现方式,所述创建单元,还用于:待录制内容为游戏时,为游戏创建多个抓屏对象,对所述多个抓屏对象分别进行初始化;使用全局钩子监听所创建的所述多个抓屏对象,以在所述多个抓屏对象中确定产生视频渲染数据的第一抓屏对象,判定游戏使用所述第一抓屏对象对应的游戏引擎进行视频渲染,通过所述第一抓屏对象复制数据,作为录制屏幕数据进行存储。作为一种实现方式,所述创建单元,还用于:为游戏创建Direct3D对象,所述Direct3D对象包括directx8、directx9、directx10、directx11、directx12。作为一种实现方式,所述创建单元,还用于:待录制内容为操作系统桌面时,确定当前操作系统的版本号,操作系统为windows7及以下系统时,创建DWM抓屏对象,使用全局钩子监听DWM抓屏对象,以捕获桌面渲染数据;若DWM抓屏对象创建失败,则创建GDI抓屏对象,调用windows的bitblt函数截取桌面渲染数据;操作系统为windows8及以上系统时,调用CreateTexture2D函数创建DXGI抓屏对象,以捕获桌面渲染数据,若DXGI抓屏对象创建失败或创建后无法捕获桌面渲染数据,则创建GDI抓屏对象,调用windows的bitblt函数截取桌面渲染数据。根据本申请的第三方面,提供一种存储介质,其上存储由可执行程序,所述可执行程序被处理器执行时实现所述的屏幕录制方法的步骤。本申请实施例提供的屏幕录制方法及装置、存储介质,当接收到屏幕录制指令后,根据屏幕录制指令确定待录制内容,并结合当前的运行环境为待录制内容确定抓屏策略,基于抓屏策略确定相应的抓屏对象,并基于抓屏对象录制屏幕数据,从而实现屏幕录制。本申请实施例能够自动为待录制内容确定多个抓屏策略,并能基于抓屏策略的优先级依次生成抓屏对象,并确定所生成的抓屏对象是否适用于待录制内容,直到为待录制内容选择出最适于其的抓屏对象,这样,能根据不同的待录制内容为其确定出更佳的录屏对象,屏幕录制的效率更高,录制效果更佳,从而提升了用户体验。附图说明图1为本申请实施例提供的屏幕录制方法流程示意图;图2为本申请实施例提供的智能抓屏方法的流程示意图;图3为本申请实施例提供的绘图渲染流程示意图;图4为本申请实施例提供的屏幕录制装置的组成结构示意图。具体实施方式以下结合示例,详细阐明本申请实施例的技术方案的实质。图1为本申请实施例提供的屏幕录制方法流程示意图,如图1所示,本申请实施例的屏幕录制方法包括以下处理步骤:步骤101,基于屏幕录制指令,确定本文档来自技高网...

【技术保护点】
1.一种屏幕录制方法,其特征在于,所述方法包括:/n基于屏幕录制指令,确定待录制内容;/n根据当前的运行环境,为所述待录制内容确定抓屏策略;/n在所述抓屏策略中选取优先级最高的抓屏策略,创建优先级最高的抓屏策略对应的抓屏对象,并对所述抓屏对象进行初始化;确定优先级最高的抓屏策略对应的所述抓屏对象初始化是否成功,不成功时创建次优先级的抓屏策略对应的抓屏对象,并确定次优先级的抓屏策略对应的抓屏对象是否初始化成功,不成功时继续下一优先级的抓屏策略,直至为所述抓屏策略创建适用的抓屏对象或所有抓屏策略均尝试完毕;/n当成功创建抓屏对象后,以成功创建的抓屏对象抓取数据,作为录制屏幕数据。/n

【技术特征摘要】
1.一种屏幕录制方法,其特征在于,所述方法包括:
基于屏幕录制指令,确定待录制内容;
根据当前的运行环境,为所述待录制内容确定抓屏策略;
在所述抓屏策略中选取优先级最高的抓屏策略,创建优先级最高的抓屏策略对应的抓屏对象,并对所述抓屏对象进行初始化;确定优先级最高的抓屏策略对应的所述抓屏对象初始化是否成功,不成功时创建次优先级的抓屏策略对应的抓屏对象,并确定次优先级的抓屏策略对应的抓屏对象是否初始化成功,不成功时继续下一优先级的抓屏策略,直至为所述抓屏策略创建适用的抓屏对象或所有抓屏策略均尝试完毕;
当成功创建抓屏对象后,以成功创建的抓屏对象抓取数据,作为录制屏幕数据。


2.根据权利要求1所述的方法,其特征在于,所述基于屏幕录制指令,确定待录制内容,包括:
获取屏幕录制指令中的待录制内容,所述待录制内容为以下至少之一:
应用界面、操作系统桌面。


3.根据权利要求2所述的方法,其特征在于,所述为所述抓屏策略创建抓屏对象,包括:
待录制内容为游戏时,为游戏创建多个抓屏对象,对所述多个抓屏对象分别进行初始化;
使用全局钩子监听所创建的所述多个抓屏对象,以在所述多个抓屏对象中确定产生视频渲染数据的第一抓屏对象,判定游戏使用所述第一抓屏对象对应的游戏引擎进行视频渲染,通过所述第一抓屏对象复制数据,作为录制屏幕数据进行存储。


4.根据权利要求3所述的方法,其特征在于,所述为游戏创建多个抓屏对象,包括:
为游戏创建Direct3D对象,所述Direct3D对象包括directx8、directx9、directx10、directx11、directx12。


5.根据权利要求2所述的方法,其特征在于,所述为所述抓屏策略创建抓屏对象,包括:
待录制内容为操作系统桌面时,确定当前操作系统的版本号,操作系统为windows7及以下系统时,创建动态窗口管理器DWM抓屏对象,使用全局钩子监听DWM抓屏对象,以捕获桌面渲染数据;若DWM抓屏对象创建失败,则创建图形设备接口GDI抓屏对象,调用windows的bitblt函数截取桌面渲染数据;
操作系统为windows8及以上系统时,调用CreateTexture2D函数创建DXGI抓屏对象,以捕获桌面渲染数据,若DXGI抓屏对象创建失败或创建后无法捕获桌面渲染数据,则创建GDI抓屏对象,调用windows的bitblt函数截取桌面渲染数据。


6.一种屏幕录制装置,其特征在于,所述装置包括:

【专利技术属性】
技术研发人员:顾迅羽朱清周炬
申请(专利权)人:苏州开心盒子软件有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1