[0080] 为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0081] 实施例一
[0082] 本发明实施例提供了一种屏幕录制方法,参照图1所示,该方法包括:
[0083] 101、获取用户触发的屏幕录制指令,显示多个屏幕的标识,多个屏幕包括主屏幕和多个扩展屏。
[0084] 具体的,根据预设时间内用户的操作以及所运行的程序,获取多个扩展屏的运行状态,运行状态包括活跃或不活跃;
[0085] 显示主屏幕的标识,以及运行状态为活跃的多个扩展屏的标识。
[0086] 102、根据用户所选定的多个标识,为多个扩展屏分别创建录屏虚拟设备、图层传输接口以及图层接口。
[0087] 103、根据多个录屏虚拟设备、多个图层传输接口以及多个图层接口,分别录制多个扩展屏的录制视频。
[0088] 具体的,屏幕录制指令包括与多个扩展屏对应的画面尺寸和画面位置,分别录制多个扩展屏的录制视频包括:
[0089] 分别在多个扩展屏上,显示与画面尺寸和画面位置对应的录制窗口;
[0090] 在用户确认后,根据画面尺寸和画面位置,分别录制多个扩展屏的录制视频。
[0091] 104、录制主屏幕的录制视频。
[0092] 可选的,在执行步骤103至步骤104的同时,还可以执行步骤105。
[0093] 105、在将运行状态为非活跃的扩展屏显示录制窗口。
[0094] 具体的,录制窗口至少包括多个屏幕的当前录制画面以及录制时间。
[0095] 106、根据用户的操作和/或用户的瞳孔参数,分别获取用户对多个屏幕的关注度。
[0096] 107、根据多个关注度,将多个录制视频合成为最终录制视频。
[0097] 具体的,根据多个关注度,设置多个录制视频的尺寸和位置;
[0098] 将多个录制视频,按照尺寸和位置,合成为最终录制视频。
[0099] 实施例二
[0100] 本发明实施例提供了一种屏幕录制方法,该方法包括:
[0101] 201、根据预设时间内用户的操作以及所运行的程序,获取多个扩展屏的运行状态。
[0102] 具体的,运行状态包括活跃或不活跃,进一步的,对于任意一个扩展屏,当预设时间内,该屏幕上至少包含某个程序的界面或者子界面时,则该扩展屏的运行状态为活跃,否则,则为不活跃;
[0103] 可选的,在实际应用中,对于任意一个扩展屏,当预设时间内,该屏幕上至少包含某个程序的界面或者子界面时,判断该界面或者子界面所占屏幕的大小,若该该界面或者子界面占屏幕的50%或者50%以上,则该扩展屏的运行状态为活跃,否则,则为不活跃。
[0104] 进一步的,根据预设时间内用户的操作,获取多个扩展屏的运行状态的过程可以为:
[0105] 确认预设时间内用户是否有针对某个程序的界面或者子界面的操作,该操作可以是点击该界面或者子界面,或者激活该该界面或者子界面;若是,则该扩展屏的运行状态为活跃。
[0106] 进一步的,若多屏设备还包括摄像头,则根据预设时间内用户的操作,获取多个扩展屏的运行状态的过程可以为:
[0107] 通过摄像头获取用户的瞳孔朝向数据;
[0108] 根据该瞳孔朝向数据,以及主屏幕和多个扩展屏的位置,获取预设时间内,用户的视线是否分别在主屏幕和多个扩展屏停留,若是,则用户的视线所停留的扩展屏的运行状态为活跃。
[0109] 202、获取用户触发的屏幕录制指令。
[0110] 具体的,用户触发屏幕录制指令可以为:
[0111] 用户通过触控或者输入设备输入点击手势,该点击手势指向录制图标,则指示用户触发屏幕录制指令。
[0112] 可选的,用户触发屏幕录制指令的过程还可以为:
[0113] 用户通过输入设备输入快捷键;或者
[0114] 用户输入预设的语音指令;或者
[0115] 用户通过输入设备输入预设的文本指令。
[0116] 可选的,用户在触发屏幕录制指令后,还可以显示屏幕录制界面,本发明实施例对该屏幕录制界面的界面布局以及显示位置不加以限定。
[0117] 203、显示主屏幕的标识,以及运行状态为活跃的多个扩展屏的标识。
[0118] 具体的,该标识可以是屏幕的名称,该名称可以是用户自定义的,也可以是系统自动设置的;
[0119] 设置主屏幕的标识与扩展屏的标识的显示方式不同,主屏幕的标识后增加用于指示主屏幕的标志,或者,该主屏幕的标识在实现界面所占的面积或者颜色与扩展屏的标识不同。
[0120] 可选的,用户通过点击该扩展屏的标识,可以将操作标识或者光标切换至该标识对应的扩展屏;
[0121] 可选的,在实际应用中,还可以显示主屏幕的标识,以及所有扩展屏的标识;该所有扩展屏的标识后增加运行状态更改图标;
[0122] 若扩展屏的运行状态为活跃,用户可以点击该运行状态更改图标,关闭该扩展屏上至少包含的某个程序的界面或者子界面,并将该扩展屏的运行状态设置为不活跃。
[0123] 值得注意的是,步骤201至步骤203是实现获取用户触发的屏幕录制指令,显示多个屏幕的标识的过程,除了上述步骤所述的方式之外,还可以通过其他方式实现该过程,本发明实施例对具体的实现方式不加以限定,另外,本发明实施例所述的多个屏幕包括主屏幕和多个扩展屏。
[0124] 204、根据用户所选定的多个标识,为多个扩展屏分别创建录屏虚拟设备、图层传输接口以及图层接口。
[0125] 具体的,获取用户通过选取标识所选择的多个扩展屏;对于该多个扩展屏中的任意一个,通过以下方式,创建与该扩展屏对应的录屏虚拟设备、图层传输接口以及图层接口:
[0126] 调用系统服务MediaProjectionManagerService实例,通过MediaProjectionManagerService实例获取媒体投影MediaProjection实例,调用MediaProjection实例中的创建录屏虚拟设备createVirtualDisplay实例创建与该扩展屏对应的录屏虚拟设备;
[0127] 为该扩展屏创建媒体录制MediaRecorder实例,调用MediaProjection实例,创建用于将扩展屏的图层数据向多媒体模块传输的Surface实例,该Surface实例即为与该扩展屏对应的图层传输接口;
[0128] 启动设备管理服务DisplayManagerService实例,通过DisplayManagerService实例调用图像渲染合成控制者SurfaceFinger实例,SurfaceFinger实例用于获取扩展屏的图层数据,该SurfaceFinger实例即为与扩展屏对应的图层接口;
[0129] 将Surface实例及SurfaceFinger实例配置于录屏虚拟设备中,建立Surface实例与SurfaceFinger实例之间的关联关系。
[0130] 下一个扩展屏,继续执行上述操作,直至创建与多个扩展屏分别一一对应的录屏虚拟设备、图层传输接口以及图层接口。
[0131] 示例性的,为了进一步使本领域技术人员了解本发明实施例所述的方法,假设该多个扩展屏的数量为3,分别为扩展屏a、扩展屏b和扩展屏c,则在执行上述步骤后,分别创建与扩展屏a对应的录屏虚拟设备a、图层传输接口a以及图层接口a,与扩展屏b对应的录屏虚拟设备b、图层传输接口b以及图层接口b,与扩展屏c对应的录屏虚拟设备c、图层传输接口c以及图层接口c。
[0132] 205、获取用户触发屏幕录制指令所包括的与多个扩展屏对应的画面尺寸和画面位置。
[0133] 具体的,用户在触发屏幕录制指令之后,还可以输入多个扩展屏对应的画面尺寸和画面位置,该过程可以具体为:
[0134] 在用户通过选取标识所选择的多个扩展屏后,分别在该多个扩展屏上的预设位置上显示预设尺寸的录制窗口;
[0135] 用户通过输入设备选取该录制窗口后,可以通过拖拽的方式,重新确定该录制窗口的画面位置;
[0136] 用户在重新确定该录制窗口的位置后,可以通过放大或者缩小操作,重新确定该录制窗口的画面尺寸。
[0137] 可选的,为了提高用户体验,在实际应用中,对于任意一个扩展屏,在该扩展屏上的预设位置上显示预设尺寸的录制窗口的过程还可以为:
[0138] 获取在该扩展屏上某个程序的界面或者子界面的画面位置和画面尺寸;
[0139] 设置录制窗口的画面位置和画面尺寸与该界面或者子界面的画面位置和画面尺寸相同。
[0140] 206、分别在多个扩展屏上,显示与画面尺寸和画面位置对应的录制窗口。
[0141] 具体的,对于该多个扩展屏中的任意一个,可以执行以下操作:
[0142] 根据用户所确定的录制窗口的画面位置和画面尺寸,显示该录制窗口,该录制窗口上还包括确认图标;
[0143] 为了方便用户调整录制窗口,在显示该录制窗口后,还可以继续执行步骤205,并在步骤205之后,继续执行步骤206。
[0144] 207、在用户确认后,根据画面尺寸和画面位置,以及多个录屏虚拟设备、多个图层传输接口以及多个图层接口,分别录制多个扩展屏的录制视频。
[0145] 具体的,录屏虚拟设备可以基于图层接口获取待录制屏幕的待显示图像的图层数据,再将所获取的图层数据通过图层传输接口传输给后端的图像处理单元如多媒体模块,从而实现待录制的扩展屏的显示图像的录制,并形成相应的视频流;
[0146] 当操作系统的多媒体模块接收到录制的扩展屏的图层数据后,对图层数据进行渲染、合并等处理,即将所述录屏虚拟设备对扩展屏录制的图像数据呈现为待显示图像,并生成与该扩展屏对应的录屏视频;
[0147] 在上述过程中,对电子设备中的操作系统中的设备(Display)管理机制的设备管理服务(DisplayManagerService)类和图像渲染合成控制者(SurfaceFlinger)类的进行修改,使电子设备的操作系统能够支持扩展屏的录制。
[0148] 值得注意的是,步骤205至207是实现根据多个录屏虚拟设备、多个图层传输接口以及多个图层接口,分别录制多个扩展屏的录制视频的过程,除了上述步骤所述的方式之外,还可以通过其他方式实现该过程,本发明实施例对具体的实现方式不加以限定,另外,本发明实施例所述的屏幕录制指令包括与多个扩展屏对应的画面尺寸和画面位置。
[0149] 208、录制主屏幕的录制视频。
[0150] 具体的,本发明实施例对具体的录制方式不加以限定。
[0151] 需要说明的是,在实际应用中,若用户的屏幕录制指令指示用户所录制的屏幕不包括主屏幕,则不必执行步骤208。
[0152] 可选的,在执行步骤207至步骤208的同时,还可以执行步骤209:
[0153] 209、在将运行状态为非活跃的扩展屏显示录制窗口。
[0154] 具体的,录制窗口至少包括多个屏幕的当前录制画面以及录制时间。
[0155] 本发明实施例对具体的显示方式不加以限定。
[0156] 可选的,为了用户还可以输入针对该当前录制画面以及该录制时间的操作,该过程可以具体为:
[0157] 用户可以通过点击该当前录制画面,暂停录制,同时在暂停录制后,还可以通过点击该当前录制画面,继续录制,与该扩展屏对应的录制视频不包括暂停录制与继续录制之间的录制视频片段;
[0158] 可选的,用户还可以通过点击该当前录制画面,通过手势或者鼠标的轮轨滚动实现以用户点击点为中心,在不改变录制窗口的前提下,实现对画面的放大或者缩小;
[0159] 可选的,用户还可以通过放大或者缩小操作,改变该录制窗口的画面尺寸。
[0160] 210、根据用户的操作和/或用户的瞳孔参数,分别获取用户对多个屏幕的关注度。
[0161] 具体的,多屏设备还包括摄像头,则根据用户的瞳孔参数,分别获取用户对多个屏幕的关注度的过程可以为:
[0162] 通过摄像头获取用户的瞳孔朝向数据;
[0163] 根据该瞳孔朝向数据,以及主屏幕和多个扩展屏的位置,获取预设时间内,用户的瞳孔朝向分别在主屏幕和多个扩展屏的停留时间;
[0164] 按照停留时间的长短,分别获取用户对多个屏幕的关注度;该过程可以为:
[0165] 用户的瞳孔朝向在某个屏幕的停留时间越长,则用户对该屏幕的关注度越高。
[0166] 据用户的操作,分别获取用户对多个屏幕的关注度的过程可以为:
[0167] 获取用户通过输入设备(如鼠标或者触摸板等)进行操作时,获取用于指示输入设备的光标在各个屏幕上的持续滑动时间;
[0168] 按照持续滑动时间的长短,分别获取用户对多个屏幕的关注度;该过程可以为:
[0169] 持续滑动时间越长,则用户对该屏幕的关注度越高。
[0170] 211、根据多个关注度,设置多个录制视频的尺寸和位置。
[0171] 具体的,将关注度最高的屏幕所对应录制视频的尺寸设置为最大值,并将该录制视频的位置设置于中心位置;
[0172] 将其余屏幕所对应录制视频的尺寸设置为中等值,并将该录制视频的位置设置于非中心位置。
[0173] 可选的,还以为:
[0174] 将关注度中等的屏幕所对应录制视频的尺寸设置为中等值,并将该录制视频的位置设置于中心位置与边缘位置之间。
[0175] 将关注度最小的屏幕所对应录制视频的尺寸设置为最小值,并将该录制视频的位置设置于边缘位置。
[0176] 本发明实施例所述的中心位置为最终录制视频画面的几何中心位置,边缘位置为最终录制视频画面的轮廓边缘位置,示例性的,以最终录制视频画面为矩形为例,则中心位置为该矩形的几何中心,该边缘位置为矩形边框的位置,上述过程可以具体为:
[0177] 将关注度最高的屏幕所对应录制视频的尺寸设置为最大值,并将该录制视频的几何中心位置设置于最终录制视频画面的中心位置;
[0178] 将其余屏幕所对应录制视频的尺寸设置为中等值,并将该录制视频的任意边框设置为与最终录制视频画面的边框重合。
[0179] 上述过程仅仅是示例性的,在实际应用,用户可以按照需求,自定义该多个录制视频的尺寸和位置,本发明实施例对具体的设置方式和自定义方式不加以限定。
[0180] 212、将多个录制视频,按照尺寸和位置,合成为最终录制视频。
[0181] 具体的,该合成过程可以是通过操作系统的多媒体模块实现的,本发明实施例对具体的步骤212所述合成为最终录制视频的方式不加以限定。
[0182] 值得注意的是,步骤211至步骤212是实现根据多个关注度,将多个录制视频合成为最终录制视频的过程,除了上述步骤所述的方式之外,还可以其他方式实现该过程,本发明实施例对具体的实现方式不加以限定。
[0183] 实施例三
[0184] 本发明实施例提供了一种多屏设备2,其中,多屏设备2与多个屏幕通过有线或者无线的方式连接,该多个屏幕包括一个主屏幕和多个扩展屏,参照图2所示,该多屏设备2包括:
[0185] 获取模块21,用于获取用户触发的屏幕录制指令,显示多个屏幕的标识,多个屏幕包括主屏幕和多个扩展屏;
[0186] 创建模块22,用于根据用户所选定的多个标识,为多个扩展屏分别创建录屏虚拟设备、图层传输接口以及图层接口;
[0187] 录制模块23,用于根据录屏虚拟设备、图层传输接口以及图层接口,分别录制多个扩展屏的录制视频;
[0188] 录制模块23还用于录制主屏幕的录制视频;
[0189] 识别模块24,用于根据用户的操作和/或用户的瞳孔参数,分别获取用户对多个屏幕的关注度;
[0190] 合成模块25,用于根据多个关注度,将多个录制视频合成为最终录制视频。
[0191] 可选的,获取模块21具体用于:
[0192] 根据预设时间内用户的操作以及所运行的程序,获取多个扩展屏的运行状态,运行状态包括活跃或不活跃;
[0193] 显示主屏幕的标识,以及运行状态为活跃的多个扩展屏的标识。
[0194] 可选的,屏幕录制指令包括与多个扩展屏对应的画面尺寸和画面位置,录制模块23具体用于:
[0195] 分别在多个扩展屏上,显示与画面尺寸和画面位置对应的录制窗口;
[0196] 在用户确认后,根据画面尺寸和画面位置,分别录制多个扩展屏的录制视频。
[0197] 可选的,多屏设备2还包括显示模块26,用于:
[0198] 在将运行状态为非活跃的扩展屏显示录制窗口;
[0199] 其中,录制窗口至少包括多个屏幕的当前录制画面以及录制时间。
[0200] 可选的,合成模块25具体用于:
[0201] 根据多个关注度,设置多个录制视频的尺寸和位置;
[0202] 将多个录制视频,按照尺寸和位置,合成为最终录制视频。
[0203] 实施例四
[0204] 本发明实施例提供了一种屏幕录制系统,该系统还包括多个屏幕,该多个屏幕包括一个主屏幕和多个扩展屏,参照图3所示,该系统包括:
[0205] 获取装置31,用于获取用户触发的屏幕录制指令,显示多个屏幕的标识,多个屏幕包括主屏幕和多个扩展屏;
[0206] 创建装置32,用于根据用户所选定的多个标识,为多个扩展屏分别创建录屏虚拟设备、图层传输接口以及图层接口;
[0207] 录制装置33,用于根据录屏虚拟设备、图层传输接口以及图层接口,分别录制多个扩展屏的录制视频;
[0208] 录制装置33还用于录制主屏幕的录制视频;
[0209] 识别装置34,用于根据用户的操作和/或用户的瞳孔参数,分别获取用户对多个屏幕的关注度;
[0210] 合成装置35,用于根据多个关注度,将多个录制视频合成为最终录制视频。
[0211] 可选的,获取装置31具体用于:
[0212] 根据预设时间内用户的操作以及所运行的程序,获取多个扩展屏的运行状态,运行状态包括活跃或不活跃;
[0213] 显示主屏幕的标识,以及运行状态为活跃的多个扩展屏的标识。
[0214] 可选的,屏幕录制指令包括与多个扩展屏对应的画面尺寸和画面位置,录制装置33具体用于:
[0215] 分别在多个扩展屏上,显示与画面尺寸和画面位置对应的录制窗口;
[0216] 在用户确认后,根据画面尺寸和画面位置,分别录制多个扩展屏的录制视频。
[0217] 可选的,系统还包括显示装置36,用于:
[0218] 在将运行状态为非活跃的扩展屏显示录制窗口;
[0219] 其中,录制窗口至少包括多个屏幕的当前录制画面以及录制时间。
[0220] 可选的,合成装置35具体用于:
[0221] 根据多个关注度,设置多个录制视频的尺寸和位置;
[0222] 将多个录制视频,按照尺寸和位置,合成为最终录制视频。
[0223] 实施例五
[0224] 本发明实施例提供了一种计算机可读存储介质,该可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现实施例一和/或实施例二任一项所述方法的步骤。
[0225] 本发明实施例提供了一种屏幕录制方法、系统、多屏设备和可读存储介质,通过根据用户所选定的多个标识,为多个扩展屏分别创建录屏虚拟设备、图层传输接口以及图层接口;根据多个录屏虚拟设备、多个图层传输接口以及多个图层接口,分别录制多个扩展屏的录制视频;实现了对多个扩展屏的显示内容进行录制,从而提高了用户体验。通过根据用户的操作和/或用户的瞳孔参数,分别获取用户对多个屏幕的关注度;根据多个关注度,将多个录制视频合成为最终录制视频,使得可以根据用户的关注需求,按照不同的方式对录制画面的大小和位置进行处理,从而进一步满足了用户对多个扩展屏的显示内容进行录制过程中的体验。
[0226] 上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
[0227] 需要说明的是:上述实施例提供的多屏设备和屏幕录制系统在执行屏幕录制方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备和系统的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的屏幕录制方法、系统、多屏设备和可读存储介质实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0228] 本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0229] 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。