CN110337005A - 智能终端的录屏方法、系统、智能终端及计算机可读存储介质 - Google Patents
智能终端的录屏方法、系统、智能终端及计算机可读存储介质 Download PDFInfo
- Publication number
- CN110337005A CN110337005A CN201910613431.8A CN201910613431A CN110337005A CN 110337005 A CN110337005 A CN 110337005A CN 201910613431 A CN201910613431 A CN 201910613431A CN 110337005 A CN110337005 A CN 110337005A
- Authority
- CN
- China
- Prior art keywords
- data
- intelligent terminal
- display
- record screen
- encoder
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000009877 rendering Methods 0.000 claims abstract description 19
- 238000009434 installation Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 6
- 239000000284 extract Substances 0.000 claims description 6
- 238000005070 sampling Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 206010021703 Indifference Diseases 0.000 description 1
- 241000406668 Loxodonta cyclotis Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4334—Recording operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/462—Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
- H04N21/4627—Rights management associated to the content
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明提供了一种智能终端的录屏方法、系统、智能终端及计算机可读存储介质,录屏方法包括:应用对象生成录屏信号;编解码模块创建编码器对象;通过编码器对象创建数据输入对象;显示管理模块创建至少一个虚拟显示单元,具有数据输出对象;选定数据输入对象为数据输出对象的输出目标,数据输出对象于数据输入对象上渲染显示管理模块的显示内容;编码器对象读取数据输入对象内显示内容,以获得屏幕编码数据;音视频数据封装模块对屏幕编码数据封装,以形成音视频数据。采用上述技术方案后,可支持安卓手机在对屏幕显示内容作提取以共享直播的同时,也可将当前屏幕显示内容进行录屏操作,在同一时刻下实现直播、录屏双功能。
Description
技术领域
本发明涉及智能终端控制领域,尤其涉及一种智能终端的录屏方法、系统、智能终端及计算机可读存储介质。
背景技术
随着智能终端的越发普及,人们对于智能终端在使用时可带来的使用体验要求也越来越高。比如,不少对智能终端上安装的游戏类、视频类、直播类应用程序具有深度使用的用户,则希望在使用智能终端时,可同时享受到游戏、娱乐、共享的体验。
以安装有安卓系统的智能终端(下简称安卓手机)为例,当用户使用安卓手机进行游戏,并将安卓手机当前显示的内容以录制、共享和直播的方式显示给其他用户时,便需要对安卓手机上屏幕显示内容进行录屏。目前安卓手机的录屏受限于系统内的媒介投影模块(MediaProjection)的架构限制,使得在同一个时刻不允许有多个MediaProjection实例存在。因此在某些场景中,比如有用户使用安卓手机在某些直播平台进行直播,由于直播时已占用了一个MediaProjection实例,此时用户想要同时进行录屏动作,这个需求就无法实现了。又比如某个用户想在安卓手机上的多个直播平台同时进行直播,这样的需求在现有的安卓手机的安卓架构上就无法实现了。
因此,需要一种新型的录屏方法和录屏系统,可支持安卓手机在对屏幕显示内容作提取以共享直播的同时,也可将当前屏幕显示内容进行录屏操作,在同一时刻下实现直播、录屏双功能。
发明内容
为了克服上述技术缺陷,本发明的目的在于提供一种智能终端的录屏方法、系统、智能终端及计算机可读存储介质,通过绕过MediaProjection的封装,实现了后台录制的功能。
本发明公开了一种智能终端的录屏方法,包括以下步骤:
智能终端内的应用对象生成录屏信号,向应用对象赋予系统权限;
基于录屏信号,智能终端内的编解码模块创建一具有录屏配置的编码器对象;
通过编码器对象创建数据输入对象,其中数据输入对象用作编码器对象的编码目标;
智能终端内的显示管理模块创建至少一个虚拟显示单元,虚拟显示单元具有数据输出对象;
选定数据输入对象为数据输出对象的输出目标,使得数据输出对象于数据输入对象上渲染显示管理模块的显示内容;
编码器对象读取数据输入对象内经编码的显示内容,以获得屏幕编码数据;
智能终端内的音视频数据封装模块对屏幕编码数据封装,以形成音视频数据。
优选地,智能终端内的应用对象生成录屏信号,向应用对象赋予系统权限的步骤包括:
选定一待安装应用对象,生成待安装应用对象的安装包;
获取待安装应用对象的待安装环境的密钥;
利用密钥对安装包签名,形成签名包;
验证签名包的密钥,并将签名包安装于智能终端,形成应用对象;
启动应用对象,当密钥包括系统签名级别时,通过智能终端的包管理模块申请访问智能终端内帧缓冲区的权限;
向应用对象赋予访问帧缓冲区的权限。
优选地,基于录屏信号,智能终端内的编解码模块创建一具有录屏配置的编码器对象的步骤包括:
提取智能终端内的编码器对象中用于编码的实例;
将实例用作为编码器对象。
优选地,对编码器对象配置包括:
编码器对象支持h264的编码格式;
编码器对象的编码帧率大于等于30帧;
编码器对象的编码比特率大于等于2.2Mb;
编码器对象的分辨率大于等于720p;
编码器对象的采样间隔小于等于5秒中的一种或多种。
优选地,智能终端内的显示管理模块创建至少一个虚拟显示单元,虚拟显示单元具有数据输出区的步骤包括:
智能终端内的显示管理模块创建至少一个虚拟显示单元;
设定虚拟显示单元的长宽参数及用于回传数据的回调函数。
优选地,智能终端内的显示管理模块创建至少一个虚拟显示单元,虚拟显示单元具有数据输出对象的步骤包括:
显示管理模块创建对应于智能终端内的媒介投影模块的第一虚拟显示单元和对应于编码器对象的第二虚拟显示单元,第一虚拟显示单元具有第一数据输出对象,第二虚拟显示单元具有第二数据输出对象;
录屏方法还包括:
提取媒介投影模块中用于录音录像的实例;
选定第一数据输出对象为用于录音录像的实例的输出目标,使得第一数据输出对象于用于录音录像的实例上渲染显示管理模块的显示内容;
选定数据输入对象为数据输出对象的输出目标,使得数据输出对象于数据输入对象上渲染显示管理模块的显示内容的步骤包括:
选定第二数据输出对象为数据输出对象的输出目标,使得第二数据输出对象于数据输入对象上渲染显示管理模块的显示内容。
本发明还公开了一种智能终端的录屏系统,包括:
赋权模块,向智能终端内的生成录屏信号的应用对象赋予系统权限;
编解码模块,基于录屏信号,创建一具有录屏配置的编码器对象,其中,编码器对象创建有用作编码器对象的编码目标的数据输入对象;
显示管理模块,创建至少一个虚拟显示单元,其中,虚拟显示单元具有数据输出对象;
控制模块,选定数据输入对象为数据输出对象的输出目标,使得数据输出对象于数据输入对象上渲染显示管理模块的显示内容,并控制编码器对象读取数据输入对象内经编码的显示内容,以获得屏幕编码数据;
音视频数据封装模块,对屏幕编码数据封装,以形成音视频数据。
优选地,录屏系统还包括:媒介投影模块;
显示管理模块创建对应于媒介投影模块的第一虚拟显示单元和对应于编码器对象的第二虚拟显示单元,其中第一虚拟显示单元具有第一数据输出对象,第二虚拟显示单元具有第二数据输出对象;
控制模块提取媒介投影模块中用于录音录像的实例,并选定第一数据输出对象为用于录音录像的实例的输出目标,使得第一数据输出对象于用于录音录像的实例上渲染显示管理模块的显示内容,且选定第二数据输出对象为数据输出对象的输出目标,使得第二数据输出对象于数据输入对象上渲染显示管理模块的显示内容。
本发明又公开了一种智能终端,包括如上所述的录屏系统。
本发明又公开了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上所述的录屏方法。
采用了上述技术方案后,与现有技术相比,具有以下有益效果:
1.本发明中的录屏方法支持与现有的MediaProjection共存,在安卓手机上同时实现直播与录屏功能;
2.录屏的效果、帧率、编解码配置等参数与现有录屏无差,保证了用户的使用体验;
3.只有选定的特定应用程序拥有录屏权限,并不对外开放/暴露接口,防止某些危险性应用程序对屏幕录制带来风险,保证智能终端的使用安全性。
附图说明
图1为符合本发明一优选实施例中智能终端的录屏方法的流程示意图;
图2为符合本发明又一优选实施例中智能终端的录屏方法的流程示意图;
图3为符合本发明一优选实施例中智能终端的录屏系统的结构示意图
具体实施方式
以下结合附图与具体实施例进一步阐述本发明的优点。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在本发明的描述中,需要理解的是,术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
在本发明的描述中,除非另有规定和限定,需要说明的是,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,“模块”与“部件”可以混合地使用。
参阅图1,为符合本发明一优选实施例中智能终端的录屏方法的流程示意图。为了在录屏时实现绕开媒介投影模块(MediaProjection)的单一录屏通道,该实施例的录屏方法包括以下步骤:
S100:智能终端内的应用对象生成录屏信号,向应用对象赋予系统权限
智能终端内通常安装有操作系统,如安卓系统、苹果公司开发的IOS系统等,以操作系统为基础,智能终端内还安装有共用户操作的应用对象,即应用程序,如微信、微博等国内应用程序,或是Facebook、Link等国外应用程序。此类安装在智能终端内的应用对象,基于用户在对其激活后的操作,生成有录屏信号,例如,用户激活安装在安卓手机内的直播应用对象,或是专用于对智能终端的显示内容进行录屏的录屏应用对象等,并在对直播应用对象和录屏应用对象使用时进行滑屏、点触等操作,点击激活上述应用对象内的录屏功能,实现该应用对象向操作系统发送录屏信号的步骤。
智能终端在接收到应用对象生成的录屏信号后,将判断该应用对象是否具有录屏的权限,即应用对象对录屏后的操作是否具有危险性,若具有危险性,则不对其赋予录屏权限,而若应用对象符合录屏操作的安全性要求,则赋予其系统权限,即有权限在后续步骤中获取智能终端的当前显示内容。
可以理解的是,向应用对象赋予系统权限与否,可通过多种方式验证,例如在应用对象安装在智能终端之前,便对其进行签名或特殊封装,以差异化其他不可赋予系统权限的应用对象,或是在赋权过程中,智能终端读取离线缓存于智能终端内的、或是存储在远程服务器端的应用对象列表,根据列表内记载的赋权与否标准决定是否向已生成录屏信号的该应用对象赋权。
S200:基于录屏信号,智能终端内的编解码模块创建一具有录屏配置的编码器对象智能终端接收到录屏信号,并已验证生成该录屏信号的应用对象具有系统权限可录屏后,智能终端的操作系统内的一编解码模块将创建一编码器对象。智能终端内的编解码模块可以对输入的数据进行处理,来产生输出的数据。通常而言,编解码模块使用一组输入和输出缓冲器来异步处理数据,如创建一个空的输入缓冲区,填充数据后发送到编解码模块进行处理。编解码模块使用输入的数据进行转换,然后输出到一个空的输出缓冲区。最后获取到输出缓冲区的数据,消耗掉里面的数据后,释放回编解码模块。如果后续还有数据需要继续处理,编解码模块就会重复这些操作。如一具体实施例中,该步骤S200包括:S210:提取智能终端内的编码器对象中用于编码的实例;S220:将实例用作为编码器对象,由于仅使用编解码模块中编码器对象中用于编码的实例,使得该实施例中真正参与到录屏流程中的仅为编码器对象,无编解码模块的其他部分的参与。利用编解码模块中原本并不用于实现录屏功能的部分,一方面实现绕开了原有实现录屏功能的通道,另一方面可增加一路与原有实现录屏功能通道并行的新录屏通道。
在上述编解码模块的操作中,将单独分出一个流程创建一个编码器对象,即利用编解码模块原有的用作提供编/解码相关的类中,提供与编码相关的类实例,作为编码器对象使用,即创建额一个编码器对象。在该编码器对象中,具有录屏配置的接口,对接该接口后,可实现对录屏时显示内容的码率、数据格式、编码类型等进行调制,从而实现对最终形成的录屏文件的多样化预处理和符合用户的需求。
S300:通过编码器对象创建数据输入对象,其中数据输入对象用作编码器对象的编码目标
编码器对象形成后,在其内创建一数据输入对象,作为数据输入的接口。如上文所述的,编解码模块通常创建一空的输入缓冲区接收数据,而该实施例中,输入缓冲区被替换为编码器对象内的数据输入对象,通过转换数据输入接口,来规避对原有编解码模块的整体性使用。
进一步地,数据输入对象不仅用作为数据输入接口,同样也作为编码器对象的编码目标。也就是说,在数据输入对象接收数据后,编码器对象将作为数据输入对象的消费者,直接对数据输入对象上的数据进行编码,仍然通过脱离于编解码模块的数据缓冲区的方式对数据进行处理,以绕开编解码模块的使用。也就是说,本实施例中,当编解码模块创建完毕编码器对象后,编解码模块内的其他功能类将不再被调用,仅使用单独成型的编码器对象,作为录屏操作的准备,从而在编解码模块的基础上,另辟了一条对数据处理和输出的通道。
S400:智能终端内的显示管理模块创建至少一个虚拟显示单元,虚拟显示单元具有数据输出对象
在智能终端侧,其内的显示管理模块,即用于管理智能终端的显示单元显示内容的模块将创建至少一个虚拟显示单元,如安卓系统内代表一个虚拟显示器的VirtualDisplay类,创建完毕后,将VirtualDisplay的内容将被渲染在一个Surface控件上,当进程终止时VirtualDisplay会被自动地释放,并且所有的窗口都会被强制移除。当不再使用时,可主动释放资源。
如上文所述的,虚拟显示单元的内容将被渲染在一个surface控件上,因此,虚拟显示单元具有数据输出对象,直接用作surface控件,或是用于与surface空间对接。
在一优选实施例中,该步骤S400包括:S410:智能终端内的显示管理模块创建至少一个虚拟显示单元;S420:设定虚拟显示单元的长宽参数及用于回传数据的回调函数。由于不同智能终端的显示分辨率不同,而在该步骤中,通过增加虚拟显示单元的长宽参数的配置,可实现在最终形成音视频数据时,该音视频数据的分辨率符合虚拟显示单元的长宽参数,也就是说,针对不同类型的智能终端,在步骤S420中设定相应的长宽参数,便可使得最终成形的音视频数据符合该智能终端的显示分辨率。对于回调函数而言,回调函数就是一个通过函数指针调用的函数。如果把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,这便是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。通过对回调函数的设定,可实现与虚拟显示单元渲染时时域上既可满足同步也可满足异步要求。
S500:选定数据输入对象为数据输出对象的输出目标,使得数据输出对象于数据输入对象上渲染显示管理模块的显示内容
在已有编码器对象的数据输入对象和虚拟显示单元的数据输出对象后,选定数据输入对象为数据输出对象的输出目标,即虚拟显示单元作为数据输入对象的生产者,向数据输入对象渲染智能终端的显示内容。
S600:编码器对象读取数据输入对象内经编码的显示内容,以获得屏幕编码数据
结合上文所述的,编码器对象作为数据输入对象的消费者,可在数据输入对象上直接对显示内容的数据进行编码,或是数据输入对象在接收显示内容数据后对该数据进行编码,供编码器对象读取。总之,编码器对象所获取到的是,虚拟显示单元自智能终端的显示单元上提取的显示内容(已编码),即获得一屏幕编码数据。
可以理解的是,上述显示内容数据的传输,经过了虚拟显示单元—数据输出对象—数据输入对象—编码器对象的通道,期间并无媒介投影模块的参与,因此,实现了完全脱离于媒介投影模块的新一路录屏数据的传输。
S700:智能终端内的音视频数据封装模块对屏幕编码数据封装,以形成音视频数据最终,智能终端内的音视频数据封装模块自编解码模块获取屏幕编码数据,并对其作用户期望的封装,如格式要求、占据空间大小要求、码率要求等,形成最终可由播放器播放的音视频数据。
通过上述实施例的配置,由于使用编码器对象,绕过了操作系统内的媒介投影管理对象,首先实现了另一路显示内容数据的传输和另一路录屏功能的可实施化,其次在通知栏上并不会出现录屏图标,以静默的方式录屏,提高用户体验,进而原有的系统级录屏功能与其他第三方录屏实例可共存,不会与直播类的应用对象产生功能上的互斥。
一优选实施例中,智能终端内的应用对象生成录屏信号,向应用对象赋予系统权限的步骤S100包括:S110:选定一待安装应用对象,生成待安装应用对象的安装包,例如按照应用对象的开发流程编译应用对象的可执行文件,即应用对象的安装包,如安卓系统下apk格式包;S120:获取待安装应用对象的待安装环境的密钥,例如选定某一待安装应用对象在安卓或IOS系统下的各自platform key;S130:利用如安卓操作系统下标准的签名流程,利用signapk.jar或其他工具,使用platform key对特定apk做签名,形成签名包,可以理解的是,开发不同应用对象的厂家对于签名操作有各自的签名策略,一般而言厂家的platform key都是对外保密的,但是会提供不同的工具来使得签名得以进行;S140:待安装应用对象在安装至智能终端上时,智能终端的操作系统将验证签名包的密钥,并将签名包安装于智能终端,形成应用对象,例如通过PackageManager进行权限申请,其中会申请访问FrameBuffer的权限,该权限必须是系统签名的应用对象才可以申请成功;S150:启动应用对象,当密钥包括系统签名级别时,通过智能终端的包管理模块申请访问智能终端内帧缓冲区的权限;S160:向应用对象赋予访问帧缓冲区的权限。同样可以是理解的是,应用对象在第一次运行时,会再次申请一些低级别的权限,比如读写存储卡权限,确保生成的视频文件可以保存等,上述权限独立于访问帧缓冲区的权限,以防止某些恶意的应用程序在授权阶段混淆权限,绕开上述安全机制。
在一优选或可选实施例中,对编码器对象配置,也即录屏配置,可包括:编码器对象支持h264的编码格式、编码器对象的编码帧率大于等于30帧(可根据不同的安装环境动态调整)、编码器对象在不同平台上使用不同的编码器件,优选地为硬件编码、编码器对象的编码比特率大于等于2.2Mb、编码器对象的分辨率大于等于720p(像素点1080*720及以上)、编码器对象的采样间隔小于等于5秒,即至少每5秒输出一个关键帧中的一种或多种。上述配置由于并未涉及编码器对象的本质,均仅为对录屏配置的要求,因此,通过编解码模块实例化一个普通的编码器对象,进一步地提高了该实施例的适用性。
参阅图2,在一优选实施例中,智能终端的录屏方法中既包含了使用原有录屏方式进行对智能终端显示内容共享的直播功能,也包含了将显示内容录制保存的录屏功能。具体地,智能终端内的显示管理模块创建至少一个虚拟显示单元,虚拟显示单元具有数据输出对象的步骤S400包括:S410’:显示管理模块创建对应于智能终端内的媒介投影模块的第一虚拟显示单元和对应于编码器对象的第二虚拟显示单元,第一虚拟显示单元具有第一数据输出对象,第二虚拟显示单元具有第二数据输出对象,也就是说,显示管理模块分别创建了两个虚拟显示单元,用于两路录屏。
此外,智能终端的录屏方法还包括:S800:提取媒介投影模块中用于录音录像的实例,也即媒介投影模块实例化出一个同样用于录屏的实例;S900:选定第一数据输出对象为用于录音录像的实例的输出目标,使得第一数据输出对象于用于录音录像的实例上渲染显示管理模块的显示内容。在该步骤S900中,第一虚拟显示单元的第一数据输出对象向用于录音录像的实例渲染显示内容,媒介投影模块便接收到显示管理模块的显示内容,此为第一路的录屏。而选定数据输入对象为数据输出对象的输出目标,使得数据输出对象于数据输入对象上渲染显示管理模块的显示内容的步骤S500则包括:S510:选定第二数据输出对象为数据输出对象的输出目标,使得第二数据输出对象于数据输入对象上渲染显示管理模块的显示内容,也就是说,依然参照于上文所述实施例中,编码器对象通过数据输入对象获取显示管理模块的显示内容。由于步骤S510和步骤S900的共存,实现了在同一时刻下,具有直播功能的智能终端通过媒介投影模块录取了智能终端的显示内容并共享直播,提供录屏功能的应用对象利用编解码模块录取了智能终端的显示内容并录制,也即同时进行直播和录屏的多路录屏操作。
更进一步地,可以理解的是,当同一时刻下具有多个应用对象生成录屏信号时,显示管理模块可对应地生成数量相同的虚拟显示单元,并以并行的方式分发渲染显示内容经至每一个编码器对象的数据输入对象,以使得每个应用对象均可录屏。通过该配置,可实现一应用对象直播多应用对象录屏的三路及以上的多路录屏。该实施例中,为了保证智能终端的操作安全,每个生成录屏信号的应用对象优选地,均需要在发布时获取智能终端厂商和操作系统厂商的签名授权,以保证获取录屏权限。
实施例一
以下通过一具体实施例详细介绍智能终端的录屏方法,在该实施例中,智能终端的应用环境,或是应用对象的安装环境为安卓系统,则各元素对应关系如下:编解码模块——MediaCodec对象,编码器对象——MediaEncoder对象,数据输入对象——InputSurface对象,显示管理模块——DisplayManager,虚拟显示单元——VirtualDisplay对象,数据输出对象——Output Surface对象,音视频数据封装模块——MediaMuxer,媒介投影模块——MediaPrjection,用于录音录像的实例——MediaRecorder。
录屏实现时,在对应用对象赋权后,MediaCodec对象创建一个编码器(名为MediaEncoder),MediaEncode对象内可进行录屏配置;通过MediaEncoder对象,创建一块InputSurface对象,作为数据源,且是存放输入的数据源;使用Android的DisplayManager对象,创建出一个VirtualDisplay对象;使用MediaEncoder创建的InputSurface对象,作为VirtualDisplay对象的目标Surface(Output Surface),即VirtualDisplay对象作为MeidiaEncoder对象创建的InputSurface对象的生产者,往InputSurface对象上进行渲染动作;MediaEncoder对象读取InputSurface对象上编码后的数据,就获得了整个录屏的视频编码数据;最后,对该数据进行MediaMuxer对象操作,最终就可以封装成播放器可以识别的各种文件。
参阅图3,为本发明另一实施例中的智能终端的录屏系统,录屏系统包括:
-赋权模块,向智能终端内的生成录屏信号的应用对象赋予系统权限;
-编解码模块,基于录屏信号,创建一具有录屏配置的编码器对象,其中,编码器对象创建有用作编码器对象的编码目标的数据输入对象;
-显示管理模块,创建至少一个虚拟显示单元,其中,虚拟显示单元具有数据输出对象;
-控制模块,选定数据输入对象为数据输出对象的输出目标,使得数据输出对象于数据输入对象上渲染显示管理模块的显示内容,并控制编码器对象读取数据输入对象内经编码的显示内容,以获得屏幕编码数据;
-音视频数据封装模块,对屏幕编码数据封装,以形成音视频数据。
一优选实施例中,录屏系统还包括:媒介投影模块。显示管理模块创建对应于媒介投影模块的第一虚拟显示单元和对应于编码器对象的第二虚拟显示单元,其中第一虚拟显示单元具有第一数据输出对象,第二虚拟显示单元具有第二数据输出对象;控制模块提取媒介投影模块中用于录音录像的实例,并选定第一数据输出对象为用于录音录像的实例的输出目标,使得第一数据输出对象于用于录音录像的实例上渲染显示管理模块的显示内容,且选定第二数据输出对象为数据输出对象的输出目标,使得第二数据输出对象于数据输入对象上渲染显示管理模块的显示内容,从而实现直播与录屏共存的多路录屏。
基于上述录屏系统,可将其应用至一智能终端内。或智能终端安装有计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上所述的录屏方法。
智能终端可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如移动电话、智能电话、笔记本电脑、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、导航装置等等的智能终端以及诸如数字TV、台式计算机等等的固定终端。下面,假设终端是智能终端。然而,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。
应当注意的是,本发明的实施例有较佳的实施性,且并非对本发明作任何形式的限制,任何熟悉该领域的技术人员可能利用上述揭示的技术内容变更或修饰为等同的有效实施例,但凡未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何修改或等同变化及修饰,均仍属于本发明技术方案的范围内。
Claims (10)
1.一种智能终端的录屏方法,其特征在于,包括以下步骤:
智能终端内的应用对象生成录屏信号,向所述应用对象赋予系统权限;
基于所述录屏信号,智能终端内的编解码模块创建一具有录屏配置的编码器对象;
通过所述编码器对象创建数据输入对象,其中所述数据输入对象用作所述编码器对象的编码目标;
智能终端内的显示管理模块创建至少一个虚拟显示单元,所述虚拟显示单元具有数据输出对象;
选定所述数据输入对象为所述数据输出对象的输出目标,使得所述数据输出对象于数据输入对象上渲染所述显示管理模块的显示内容;
所述编码器对象读取所述数据输入对象内经编码的所述显示内容,以获得屏幕编码数据;
智能终端内的音视频数据封装模块对所述屏幕编码数据封装,以形成音视频数据。
2.如权利要求1所述的录屏方法,其特征在于,
智能终端内的应用对象生成录屏信号,向所述应用对象赋予系统权限的步骤包括:
选定一待安装应用对象,生成所述待安装应用对象的安装包;
获取所述待安装应用对象的待安装环境的密钥;
利用所述密钥对所述安装包签名,形成签名包;
验证所述签名包的密钥,并将所述签名包安装于所述智能终端,形成所述应用对象;
启动所述应用对象,当所述密钥包括系统签名级别时,通过所述智能终端的包管理模块申请访问智能终端内帧缓冲区的权限;
向所述应用对象赋予访问所述帧缓冲区的权限。
3.如权利要求1所述的录屏方法,其特征在于,
基于所述录屏信号,智能终端内的编解码模块创建一具有录屏配置的编码器对象的步骤包括:
提取智能终端内的编码器对象中用于编码的实例;
将所述实例用作为所述编码器对象。
4.如权利要求3所述的录屏方法,其特征在于,
对所述编码器对象配置包括:
所述编码器对象支持h264的编码格式;
所述编码器对象的编码帧率大于等于30帧;
所述编码器对象的编码比特率大于等于2.2Mb;
所述编码器对象的分辨率大于等于720p;
所述编码器对象的采样间隔小于等于5秒中的一种或多种。
5.如权利要求1所述的录屏方法,其特征在于,
智能终端内的显示管理模块创建至少一个虚拟显示单元,所述虚拟显示单元具有数据输出区的步骤包括:
智能终端内的显示管理模块创建至少一个虚拟显示单元;
设定所述虚拟显示单元的长宽参数及用于回传数据的回调函数。
6.如权利要求1所述的录屏方法,其特征在于,
智能终端内的显示管理模块创建至少一个虚拟显示单元,所述虚拟显示单元具有数据输出对象的步骤包括:
显示管理模块创建对应于所述智能终端内的媒介投影模块的第一虚拟显示单元和对应于所述编码器对象的第二虚拟显示单元,所述第一虚拟显示单元具有第一数据输出对象,所述第二虚拟显示单元具有第二数据输出对象;
所述录屏方法还包括:
提取所述媒介投影模块中用于录音录像的实例;
选定所述第一数据输出对象为所述用于录音录像的实例的输出目标,使得所述第一数据输出对象于用于录音录像的实例上渲染所述显示管理模块的显示内容;
选定所述数据输入对象为所述数据输出对象的输出目标,使得所述数据输出对象于数据输入对象上渲染所述显示管理模块的显示内容的步骤包括:
选定所述第二数据输出对象为所述数据输出对象的输出目标,使得所述第二数据输出对象于数据输入对象上渲染所述显示管理模块的显示内容。
7.一种智能终端的录屏系统,其特征在于,所述录屏系统包括:
赋权模块,向智能终端内的生成录屏信号的应用对象赋予系统权限;
编解码模块,基于所述录屏信号,创建一具有录屏配置的编码器对象,其中,所述编码器对象创建有用作所述编码器对象的编码目标的数据输入对象;
显示管理模块,创建至少一个虚拟显示单元,其中,所述虚拟显示单元具有数据输出对象;
控制模块,选定所述数据输入对象为所述数据输出对象的输出目标,使得所述数据输出对象于数据输入对象上渲染所述显示管理模块的显示内容,并控制所述编码器对象读取所述数据输入对象内经编码的所述显示内容,以获得屏幕编码数据;
音视频数据封装模块,对所述屏幕编码数据封装,以形成音视频数据。
8.如权利要求7所述的录屏系统,其特征在于,
所述录屏系统还包括:媒介投影模块;
所述显示管理模块创建对应于所述媒介投影模块的第一虚拟显示单元和对应于所述编码器对象的第二虚拟显示单元,其中所述第一虚拟显示单元具有第一数据输出对象,所述第二虚拟显示单元具有第二数据输出对象;
所述控制模块提取所述媒介投影模块中用于录音录像的实例,并选定所述第一数据输出对象为所述用于录音录像的实例的输出目标,使得所述第一数据输出对象于用于录音录像的实例上渲染所述显示管理模块的显示内容,且选定所述第二数据输出对象为所述数据输出对象的输出目标,使得所述第二数据输出对象于数据输入对象上渲染所述显示管理模块的显示内容。
9.一种智能终端,其特征在于,包括如权利要求7-8任一项所述的录屏系统。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6任一项所述的录屏方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910613431.8A CN110337005B (zh) | 2019-07-09 | 2019-07-09 | 智能终端的录屏方法、系统、智能终端及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910613431.8A CN110337005B (zh) | 2019-07-09 | 2019-07-09 | 智能终端的录屏方法、系统、智能终端及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110337005A true CN110337005A (zh) | 2019-10-15 |
CN110337005B CN110337005B (zh) | 2021-05-28 |
Family
ID=68144446
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910613431.8A Active CN110337005B (zh) | 2019-07-09 | 2019-07-09 | 智能终端的录屏方法、系统、智能终端及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110337005B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111355729A (zh) * | 2020-02-27 | 2020-06-30 | 深圳市瑞驰信息技术有限公司 | 一种实时录屏推流与拉流显示引擎框架及数据传输方法 |
CN112363791A (zh) * | 2020-11-17 | 2021-02-12 | 深圳康佳电子科技有限公司 | 一种录屏方法、装置、存储介质及终端设备 |
CN113806174A (zh) * | 2021-09-18 | 2021-12-17 | 南京雷鲨信息科技有限公司 | 一种手机游戏状态的监控方法、系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110085781A1 (en) * | 2009-10-13 | 2011-04-14 | Rovi Technologies Corporation | Content recorder timing alignment |
CN105681885A (zh) * | 2016-02-26 | 2016-06-15 | 杭州开迅科技有限公司 | 移动终端录屏直播装置及方法 |
CN106303329A (zh) * | 2016-08-11 | 2017-01-04 | 广州爱九游信息技术有限公司 | 录屏直播方法和装置、移动设备及直播系统 |
CN106534519A (zh) * | 2016-10-28 | 2017-03-22 | 努比亚技术有限公司 | 屏幕投影方法和移动终端 |
CN106557404A (zh) * | 2016-11-28 | 2017-04-05 | 珠海市魅族科技有限公司 | 一种应用控制的方法及移动终端 |
CN107454457A (zh) * | 2017-06-28 | 2017-12-08 | 武汉斗鱼网络科技有限公司 | 切换录屏直播分辨率的方法及装置 |
-
2019
- 2019-07-09 CN CN201910613431.8A patent/CN110337005B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110085781A1 (en) * | 2009-10-13 | 2011-04-14 | Rovi Technologies Corporation | Content recorder timing alignment |
CN105681885A (zh) * | 2016-02-26 | 2016-06-15 | 杭州开迅科技有限公司 | 移动终端录屏直播装置及方法 |
CN106303329A (zh) * | 2016-08-11 | 2017-01-04 | 广州爱九游信息技术有限公司 | 录屏直播方法和装置、移动设备及直播系统 |
CN106534519A (zh) * | 2016-10-28 | 2017-03-22 | 努比亚技术有限公司 | 屏幕投影方法和移动终端 |
CN106557404A (zh) * | 2016-11-28 | 2017-04-05 | 珠海市魅族科技有限公司 | 一种应用控制的方法及移动终端 |
CN107454457A (zh) * | 2017-06-28 | 2017-12-08 | 武汉斗鱼网络科技有限公司 | 切换录屏直播分辨率的方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111355729A (zh) * | 2020-02-27 | 2020-06-30 | 深圳市瑞驰信息技术有限公司 | 一种实时录屏推流与拉流显示引擎框架及数据传输方法 |
CN112363791A (zh) * | 2020-11-17 | 2021-02-12 | 深圳康佳电子科技有限公司 | 一种录屏方法、装置、存储介质及终端设备 |
CN113806174A (zh) * | 2021-09-18 | 2021-12-17 | 南京雷鲨信息科技有限公司 | 一种手机游戏状态的监控方法、系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110337005B (zh) | 2021-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111729293B (zh) | 一种数据处理方法、装置及存储介质 | |
CN110337005A (zh) | 智能终端的录屏方法、系统、智能终端及计算机可读存储介质 | |
CN106375696B (zh) | 一种屏幕录像方法及装置 | |
CN102918491B (zh) | 在用户界面内再现不兼容内容 | |
US7783702B2 (en) | Using a mobile phone to control a personal computer | |
CN108521608A (zh) | 视频文件的处理方法、装置、终端及存储介质 | |
CN114329298B (zh) | 一种页面呈现方法、装置、电子设备及存储介质 | |
CN102007484A (zh) | 提供/接收用户接口的方法及装置 | |
CN109325145A (zh) | 视频缩略图的获取方法、终端及计算机可读存储介质 | |
CN111158779B (zh) | 一种数据处理方法和相关设备 | |
CN108845840A (zh) | 应用程序声音的管理方法、装置、存储介质及智能终端 | |
Thommes et al. | RemoteUI: A high-performance remote user interface system for mobile consumer electronic devices | |
CN112354176A (zh) | 云游戏实现方法、云游戏实现装置、存储介质与电子设备 | |
CN110784753A (zh) | 互动视频播放方法及装置、存储介质、电子设备 | |
Lee et al. | FLUID-XP: Flexible user interface distribution for cross-platform experience | |
KR101292725B1 (ko) | 컨텐츠를 매개로 한 채팅 시스템, 서버, 단말기 및 방법 | |
CN110096325B (zh) | 社交动态信息展示方法、计算机设备及存储介质 | |
CN112492399B (zh) | 信息显示方法、装置及电子设备 | |
CN114356465A (zh) | 桌面云系统以及相关方法、装置、设备、介质 | |
Baratto | THINC: a virtual and remote display architecture for desktop computing and mobile devices | |
KR20160131827A (ko) | 클라우드 스트리밍 서비스 시스템, 알파 레벨을 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치 | |
CN114254178A (zh) | 一种基于虚拟机的视频重定向方法及装置 | |
EP3637734B1 (en) | Video data display method and device | |
CN114071170A (zh) | 一种网络直播互动方法及设备 | |
CN112434327A (zh) | 信息保护方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230307 Address after: 518055 1501, Building 1, Chongwen Park, Nanshan Zhiyuan, No. 3370, Liuxian Avenue, Fuguang Community, Taoyuan Street, Nanshan District, Shenzhen, Guangdong Province Patentee after: Shenzhen Grey Shark Technology Co.,Ltd. Address before: 210022 Room 601, block a, Chuangzhi building, 17 Xinghuo Road, Jiangbei new district, Nanjing City, Jiangsu Province Patentee before: Nanjing Thunder Shark Information Technology Co.,Ltd. |