CN117093167A - 发起屏幕镜像的方法、镜像发起装置、系统、设备及介质 - Google Patents

发起屏幕镜像的方法、镜像发起装置、系统、设备及介质 Download PDF

Info

Publication number
CN117093167A
CN117093167A CN202310998976.1A CN202310998976A CN117093167A CN 117093167 A CN117093167 A CN 117093167A CN 202310998976 A CN202310998976 A CN 202310998976A CN 117093167 A CN117093167 A CN 117093167A
Authority
CN
China
Prior art keywords
data
screen
image
information
initiating
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.)
Pending
Application number
CN202310998976.1A
Other languages
English (en)
Inventor
刘帅
张鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Youdao Hangzhou Intelligent Technology Co ltd
Original Assignee
Netease Youdao Hangzhou Intelligent Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Netease Youdao Hangzhou Intelligent Technology Co ltd filed Critical Netease Youdao Hangzhou Intelligent Technology Co ltd
Priority to CN202310998976.1A priority Critical patent/CN117093167A/zh
Publication of CN117093167A publication Critical patent/CN117093167A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本披露公开了一种发起屏幕镜像的方法、镜像发起装置、系统、设备及介质,该方法包括:响应于接收到发起屏幕镜像的操作指令,获取每帧屏幕画面的渲染完成事件;在所述渲染完成事件后添加调用接口,以获取待镜像的屏幕数据;基于所述屏幕数据,确定用于屏幕镜像的图像帧数据;以及发送所述图像帧数据。根据本披露实施例的方法,能够使得词典笔、学习机等设备实现发起屏幕镜像的功能。

Description

发起屏幕镜像的方法、镜像发起装置、系统、设备及介质
技术领域
本披露一般涉及屏幕显示技术领域。更具体地,本披露涉及一种发起屏幕镜像的方法、镜像发起装置、用于屏幕镜像的系统、用于发起屏幕镜像的设备及计算机可读存储介质。
背景技术
本部分旨在为权利要求书中陈述的本披露的实施方式提供背景或上下文。此处的描述可包括可以探究的概念,但不一定是之前已经想到或者已经探究的概念。因此,除非在此指出,否则在本部分中描述的内容对于本披露的说明书和权利要求书而言不是现有技术,并且并不因为包括在本部分中就承认是现有技术。
屏幕镜像是指将发起端当前屏幕所呈现的画面同屏到接收端的屏幕上。在目前的屏幕镜像领域,通常是将平板或者手机的屏幕画面同屏到电脑或者电视等设备的显示屏上,而尚未出现将词典笔或学习机等设备的屏幕画面同屏到例如平板、手机、电脑或者电视等设备上的技术。
发明内容
为此,非常需要一种改进的屏幕镜像方案,以使例如词典笔、学习机等设备也可以发起屏幕镜像操作,以将其屏幕画面同屏到其他类型设备上。
在本上下文中,本披露的实施方式期望提供一种发起屏幕镜像的方法、镜像发起装置、用于屏幕镜像的系统、用于发起屏幕镜像的设备及计算机可读存储介质。
在第一方面中,本披露提供一种发起屏幕镜像的方法,包括:响应于接收到发起屏幕镜像的操作指令,获取每帧屏幕画面的渲染完成事件;在所述渲染完成事件后添加调用接口,以获取待镜像的屏幕数据;基于所述屏幕数据,确定用于屏幕镜像的图像帧数据;以及发送所述图像帧数据。
在一些实施例中,在所述渲染完成事件后添加调用接口包括调用以下操作:在Haas UI显示框架下,创建画布;使用所述Haas UI显示框架中的窗口管理器,遍历所述屏幕画面在渲染过程中的渲染元素;以及基于所述渲染元素,在所述画布上绘制待镜像的屏幕画面,以获取所述屏幕画面的屏幕数据。
在另一些实施例中,所述方法还包括:在Haas UI显示框架下,创建用于获取所述屏幕数据的位图;以及将所述位图与所述画布绑定,以便在所述画布上绘制所述屏幕画面后,使得所述位图中保存所述屏幕画面,以得到所述屏幕数据。
在一些实施例中,基于所述屏幕数据,确定用于屏幕镜像的图像帧数据包括:对所述屏幕数据进行编码,以生成数据信息;以及基于所述数据信息,生成所述图像帧数据的数据包。
在另一些实施例中,基于所述数据信息,生成所述数据包包括:根据所述数据信息的类型和/或对所述数据信息的控制信息,确定所述数据信息的类型信息;基于所述类型信息和所述数据信息,生成所述数据包。
在又一些实施例中,生成的所述数据包包括一个或多个数据组,每个数据组包括至少一种类型信息和与其对应的数据信息。
在一些实施例中,所述数据包包括多个数据组,所述多个数据组包括以下中的至少两个:第一数据组,其包括第一类型信息和第一数据信息,所述第一类型信息表示第一数据信息的类型为视频或者图像;第二数据组,其包括第二类型信息和第二数据信息,所述第二类型信息表示第二数据信息的类型为音频;第三数据组,其包括第三类型信息和第三数据信息,所述第三类型信息表示第三数据信息的控制信息。
在另一些实施例中,所述方法进一步包括:基于多帧屏幕画面的渲染完成事件,得到多帧的屏幕数据的数据信息;基于每帧的数据信息和对应的类型信息,生成至少一个数据组;以及基于多帧的数据信息对应的多个数据组,生成所述数据包。
在又一些实施例中,生成所述数据包还包括:在所述数据包中添加尺寸信息,所述尺寸信息用于表示所述数据信息的字节数大小。
在一些实施例中,所述方法还包括:在所述数据包的头部添加包头,以生成包括所述包头和所述数据包的图像帧数据,其中所述包头包括用于表示所述数据包的数据长度的长度信息。
在另一些实施例中,所述编码包括H264编码。
在第二方面中,本披露提供一种镜像发起装置,其用于执行根据本披露在第一方面中任一所述的方法。
在一些实施例中,所述镜像发起装置包括词典笔或者学习机。
在第三方面中,本披露提供一种用于屏幕镜像的系统,包括:根据本披露在第二方面中任一所述的镜像发起装置;以及镜像接收装置,其配置用于:接收用于屏幕镜像的图像帧数据。
在一些实施例中,所述镜像接收装置还配置用于:响应于接收到所述图像帧数据,渲染所述图像帧数据,以得到用于显示的镜像画面。
在另一些实施例中,所述图像帧数据包括包头和数据包,所述包头包括用于表示所述数据包的数据长度的长度信息,所述数据包包括用于渲染的数据信息;在渲染所述图像帧数据前,所述镜像接收装置还配置用于:响应于接收到包头,根据所述包头中的长度信息,判断所述包头后的数据包是否传输完成;以及响应于所述包头后的数据包传输完成,获取所述图像帧数据。
在又一些实施例中,所述镜像接收装置在渲染所述图像帧数据时配置用于:基于所述图像帧数据中的数据信息的格式,创建相应格式的纹理;以及将所述图像帧数据中的数据信息渲染到所述纹理上,以便将得到的渲染结果用于显示。
在一些实施例中,所述镜像发起装置和所述镜像接收装置之间,通过TCP协议进行所述图像帧数据的传输。
在第四方面中,本披露提供一种用于发起屏幕镜像的设备,包括,至少一个处理器;存储器,其存储有程序指令,当所述程序指令由所述至少一个处理器执行时,使得所述设备执行根据本披露在第一方面中的任一项所述的方法。
在第五方面中,本披露提供一种计算机可读存储介质,其存储有用于发起屏幕镜像的程序,当所述程序由处理器来运行时,执行根据本披露在第一方面中的任一项所述的方法。
通过如上所提供的发起屏幕镜像的方案,本披露实施例通过在渲染完成事件后添加调用接口来获取待镜像的屏幕数据,使得原本不具有屏幕数据获取接口的设备(例如词典笔、学习机等)可以实现发起屏幕镜像的功能,为用户带来了更好的体验。
附图说明
通过参考附图阅读下文的详细描述,本披露示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本披露的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:
图1示意性地示出了根据本披露实施例的发起屏幕镜像的方法流程图;
图2示意性地示出了根据本披露实施例的在Haas UI显示框架下发起屏幕镜像的方法流程图;
图3示意性地示出了根据本披露实施例的包括发送数据包的发起屏幕镜像的方法流程图;
图4示意性示出了根据本披露实施例的用于屏幕镜像的系统的示意性框图;
图5示意性地示出了根据本披露实施例的镜像发起装置和镜像接收装置之间实现屏幕镜像的流程框图;
图6示出了适于实现本披露实施方式的示例性设备的框图。
具体实施方式
下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
应当理解,本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
下面将参考若干示例性实施方式来描述本披露的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本披露,而并非以任何方式限制本披露的范围。相反,提供这些实施方式是为了使本披露更加透彻和完整,并且能够将本披露的范围完整地传达给本领域的技术人员。
下面将参照本披露实施例的方法的流程图和设备(或系统)的框图描述本披露的实施方式。根据本披露的实施方式,提出了一种发起屏幕镜像的方法、镜像发起装置、用于屏幕镜像的系统、用于发起屏幕镜像的设备及计算机可读存储介质。
在本文中,需要理解的是,所涉及的术语包括:
Haas UI,是一种跨平台应用显示框架,它利用JS语言与移动开发Web理念大幅度降低了IoT应用的研发难度;
H264,是一种属于视频的编码层的编码格式;
YUV,是一种颜色编码格式,其中,Y表示图像像素的亮度,U表示图像像素的色度,V表示图像像素的饱和度;
图像帧,是组成视频的最小单位;
TCP,Transmission Control Protocol,传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议;
位图,bitmap,亦称为点阵图像或栅格图像,是由称作像素(图片元素)的单个点组成的,这些点可以进行不同的排列和染色以构成图样;
SDL,Simple DirectMedia Layer,是一套开源的跨平台多媒体开发库,通常使用C语言写成。
此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。下面参考本披露的若干代表性实施方式,详细阐释本披露的原理和精神。
发明概述
本发明人发现,目前的词典笔、学习机(例如听力宝等)均不具有发起屏幕镜像的功能,这是由于词典笔、学习机等采用的是Haas UI显示框架,与电脑、平板等设备中的显示框架不同,Haas UI显示框架没有提供底层渲染的扩展接口,因此无法直接获取屏幕数据,而目前还未出现在Haas UI显示框架中实现发起屏幕镜像的技术手段。
在介绍了本披露的基本原理之后,下面具体介绍本披露的各种非限制性实施方式。
应用场景总览
在一些应用场景中,本披露实施方式的发起屏幕镜像的方法可以通过在机器上运行的应用程序来实施。这种应用程序例如可以是屏幕镜像APP等。通常,在开启这种屏幕镜像APP后,安装有屏幕镜像APP的设备可以实现发起屏幕镜像,以将该屏幕镜像的画面同屏到其他机器上。进一步地,在实施该屏幕镜像APP的机器上通常还可以设置例如显示屏等用来显示待镜像画面,或者可以设置扬声器等来播放待镜像画面中的音频。在一些应用场景中,实施该屏幕镜像APP的机器可以包括扫描笔、词典笔、学习机(例如听力宝等)等,或者其他使用Haas UI显示框架的大屏设备。通过执行本披露实施方式的方法来发起屏幕镜像的设备,能够方便用户在其他设备上观看屏幕镜像画面内容;还可以实现将小屏设备(例如词典笔、扫描笔、学习机等)的画面投屏,以用于产品发布会功能演示等场景中。
示例性方法
下面结合上面描述的应用场景,参考图1来描述根据本披露示例性实施方式的发起屏幕镜像的方法。需要注意的是,上述应用场景仅是为了便于理解本披露的精神和原理而示出,本披露的实施方式在此方面不受任何限制。相反,本披露的实施方式可以应用于适用的任何场景。
图1示意性地示出了根据本披露实施例的发起屏幕镜像的方法流程图。如图1中所示,根据本披露实施例的发起屏幕镜像的方法100可以包括:在步骤101中,响应于接收到发起屏幕镜像的操作指令,可以获取每帧屏幕画面的渲染完成事件。在一些实施例中,渲染完成事件可以是屏幕画面在显示到显示器上之前完成的渲染过程。在另一个实施例中,渲染完成事件可以包括渲染操作完成的节点,获取每帧屏幕画面的渲染完成事件可以包括获取每帧屏幕画面的渲染操作完成时的节点,其中渲染操作可以利用硬件或软件的方式实现,例如通过执行负责渲染的代码来实现。
接着,在步骤102中,可以在渲染完成事件后添加调用接口,以获取待镜像的屏幕数据。在一些实施例中,在Hass UI显示框架下,可以补充帧回调的接口,以便获取每一帧的屏幕数据。在一个具体实施例中,可以在负责渲染的代码(例如FBNativeWindow::draw)后添加调用接口,以实现获取待镜像的屏幕数据。在一些实施例中,屏幕数据可以包括图像数据和/或音频数据。
然后,流程可以前进到步骤103中,可以基于屏幕数据,确定用于屏幕镜像的图像帧数据。在一些实施例中,可以基于一帧或多帧的屏幕数据,确定图像帧数据。在另一些实施例中,可以将获取的屏幕数据直接作为图像帧数据。在又一些实施例中,可以根据需要对屏幕数据进行格式转换,以转换成便于传输或者适于屏幕镜像接收端解析和显示的图像帧数据。
进一步地,在步骤104中,可以发送图像帧数据。在一些实施例中,可以基于网络协议来发送图像帧数据,例如基于TCP网络协议等。基于TCP网络协议,可以降低对镜像接收端的限制,使得基于任何平台的镜像接收端均易于实现对图像帧数据的接收,比如基于macOS、Windows、Linux等系统的设备。在另一些应用场景中,使用本披露实施例的方法的镜像发起端还可以对镜像接收端实现远程控制。
以上结合图1对根据本披露实施例的发起屏幕镜像的方法进行了示例性的描述,可以理解的是,上面的描述是示例性的而非限制性的。为了便于理解,下面将结合图2的一个具体实施方式进行描述。
图2示意性地示出了根据本披露实施例的在Haas UI显示框架下发起屏幕镜像的方法流程图。通过下面的描述可知,图2所示的方法200可以是前文中结合图1描述的方法100的一个具体化表现形式,因此前文中结合图1对方法100的描述也可以适用于下面对方法200的描述中。
如图2中所示,方法200可以包括:在步骤201中,响应于接收到发起屏幕镜像的操作指令,获取每帧屏幕画面的渲染完成事件。步骤201可以与前文中结合图1描述的步骤101相同或相似,此处不再赘述。
接着,在步骤202中,可以在渲染完成事件后添加调用接口,以获取待镜像的屏幕数据。在一些实施例中,步骤202中在渲染完成事件后添加调用接口可以包括调用以下操作:在步骤2021中(虚线框示出),可以在Haas UI显示框架下,创建画布。画布可以是用于绘制图像的空白区域,也可以看作是用户界面组件(简称UI组件)中的容器,用于容纳多种用户界面元素(简称UI元素)。在一些实施例中,在Haas UI显示框架下,可以通过createCanvasContext创建canvas对象(即步骤2021中的创建画布)。
然后,流程可以前进到步骤2022中(虚线框示出),可以使用Haas UI显示框架中的窗口管理器,遍历屏幕画面在渲染过程中的渲染元素。一般来说,在具有显示屏的设备的渲染框架里,有一个全局的渲染树(树形结构),渲染过程中的每个渲染元素就是渲染树的一个节点,渲染元素可以包括例如背景、应用图标、输入框、按钮、悬浮窗口等。一个完整的渲染过程需要对渲染树中的每个渲染元素进行渲染,以得到显示画面。在步骤2022中,可以使用Haas UI显示框架中的窗口管理器(或称WindowManager对象),遍历待镜像的屏幕画面在渲染过程中的渲染树的每个渲染元素。窗口管理器是控制绘制各种图形应用程序的框架(“窗口”)的外观和行为,其可以通过软件程序实现。
如图2中进一步示出的,在步骤2023中(虚线框示出),可以基于渲染元素,在画布上绘制待镜像的屏幕画面,以获取屏幕画面的屏幕数据。在画布上绘制待镜像的屏幕画面,可以是将屏幕画面的当前状态绘制到画布(或称canvas)中。在一些实施例中,根据每个渲染元素,可以使用现有的或者未来可实现的绘制技术直接在画布上进行绘制。在另一些实施例中,也可以基于画布的绘制区域的内存地址进行绘制,例如,在画布上绘制待镜像的屏幕画面可以包括:获取画布的绘制区域的内存地址;以及基于内存地址实施绘制。绘制区域可以为画布中用于绘制图像的区域。在又一些实施例中,基于内存地址实时绘制可以包括:将每个渲染元素的像素信息拷贝到内存地址对应的内存位置上。在一些实施例中,获取画布的绘制区域的内存地址可以通过使用getImageData来实现。相比于直接在画布上进行绘制,基于内存地址进行绘制具有更快的绘制速度和效率。
在另一些实施例中,方法200还可以包括:在Haas UI显示框架下,创建用于获取屏幕数据的位图;以及将位图与画布绑定,以便在画布上绘制屏幕画面后,使得位图中保存屏幕画面,以得到屏幕数据。具体地,可以在用于获取每帧的屏幕数据前,创建一个Bitmap对象,并将该Bitmap对象与画布绑定,在画布上绘制屏幕画面后,即可在Bitmap中保存了相同的屏幕画面,以便可以生成RGB格式的屏幕数据。例如,保存了屏幕画面的位图可以以RGBA8888格式存储,即可得到RGBA8888格式的屏幕数据。
下面返回图2继续描述,在获得了待镜像的屏幕数据后,流程可以前进到步骤203中,可以基于屏幕数据,确定用于屏幕镜像的图像帧数据。进一步地,在步骤204中,可以发送图像帧数据。步骤203和步骤204可以与前文中结合图1描述的步骤103和步骤104相同或相似,此处不再赘述。
以上结合图2对根据本披露实施例的在Haas UI显示框架下获取屏幕数据的实现方式进行了示例性的说明。可以理解的是,通过在Haas UI显示框架下执行方法200,可以实现扫描笔、词典笔、学习机等采用Haas UI显示框架的设备发起屏幕镜像的功能。还可以理解的是,图2中所示的是示例性的而非限制性的,例如步骤203中基于屏幕数据确定图像帧数据可以不限于仅基于屏幕数据本身来确定,还可以通过对屏幕数据进行编码来确定。下面将结合图3进行示例性的说明。
图3示意性地示出了根据本披露实施例的包括发送数据包的发起屏幕镜像的方法流程图。如图3中所示,方法300可以包括:在步骤301中,响应于接收到发起屏幕镜像的操作指令,获取每帧屏幕画面的渲染完成事件。接着,在步骤302中,在渲染完成事件后添加调用接口,以获取待镜像的屏幕数据。步骤301和步骤302已经在前文中结合图1中的步骤101和步骤102,以及前文中结合图2描述的步骤201和步骤202,进行了详细的描述,此处将不再赘述。
然后,流程可以前进到步骤303中,可以基于屏幕数据,确定用于屏幕镜像的图像帧数据。在一些实施例中,步骤303可以包括:在步骤3031(虚线看示出)中,对屏幕数据进行编码,以生成数据信息;以及在步骤3032(虚线框示出)中,可以基于该数据信息,生成图像帧数据的数据包。
在另一些实施例中,对屏幕数据进行编码可以包括H264编码。由于H264编码器通常使用YUV格式数据进行编码,因此可以对屏幕数据进行格式转换。例如,假设屏幕数据为RGBA8888格式的一帧数据,可以将其转换为YUV格式;或者假设屏幕数据为RGBA8888格式的序列帧,可以将其中每帧的数据转换为YUV格式,以得到YUV格式的序列帧。在一些实施例中,将RGB格式的数据转换为YUV格式的数据可以通过如下方式实现:R=Y+1.13983V;G=Y-0.39465U-0.5806V;B=Y+2.03211U;其中,R表示图像像素的红色强度值,G表示图像像素的绿色强度值,B表示图像像素的蓝色强度值,Y表示图像像素的亮度,U表示图像像素的色度,V表示图像像素的饱和度。通过将屏幕数据中每个像素的RGB值转换为YUV值,即可得到YUV格式的屏幕数据。
然后,可以使用H264编码器将转换后的YUV格式的屏幕数据进行编码。该编码过程可以使用FFmpeg库中的avcodec_encode_video2函数实现。进一步地,可以指定适当的编码参数,例如帧率、比特率和关键帧间隔等,以得到数据信息。通过H264编码器生成包含压缩数据信息的比特流,便于后续的传输。
在一些实施例中,在步骤3032中,可以将步骤3031中得到的数据信息直接确定为图像帧数据的数据包。在另一些实施例中,步骤3032可以包括:根据数据信息的类型和/或对数据信息的控制信息,确定数据信息的类型信息;基于类型信息和数据信息,生成数据包。在一些实施例中,生成的数据包可以包括一个或多个数据组,每个数据组可以包括至少一种类型信息和与其对应的数据信息。
在另一些实施例中,数据信息的类型可以包括视频、图像或音频等。当某个数据组中的数据信息是图像数据(例如数据信息包括像素信息)时,可以确定其对应的类型信息为视频或者图像;当某个数据组中的数据信息是音频数据时,可以确定其对应的类型信息为音频。在另一些实施例中,控制信息可以是用于控制对应的数据信息的某些性质的信息,例如当数据信息的控制信息包括透明度时,可以用于表示对应的数据信息的透明度性质,此时类型信息可以包括透明度数据。
在又一些实施例中,基于类型信息和数据信息,生成数据包,可以生成如下格式的数据包:{type:1字节,data:m字节},其中类型信息可以占用一个字节,type表示类型信息,data表示数据信息,m表示数据信息的字节数。在一些实施例中,每个数据组中可以包括一对type和data。在一些实施例中,数据包包括多个数据组时,该数据包的格式可以表示为{type:1字节,data:m字节,type:1字节,data:m字节,…}。
在一些实施例中,生成的数据包可以包括多个数据组,多个数据组可以包括以下中的至少两个:第一数据组,其包括第一类型信息和第一数据信息,第一类型信息表示第一数据信息的类型为视频或者图像;第二数据组,其包括第二类型信息和第二数据信息,第二类型信息表示第二数据信息的类型为音频;第三数据组,其包括第三类型信息和第三数据信息,第三类型信息表示第三数据信息的控制信息。在另一些实施例中,控制信息可以包括透明度。
例如,在一个应用场景中,当一个图像帧的数据包括图像数据和该图像帧上播放的音频数据时,生成数据包可以包括生成至少两个数据组(例如上述的第一数据组和第二数据组),其中第一数据组包括第一类型信息和第一数据信息,第一类型信息表示第一数据信息的类型为视频或者图像;第二数据组包括第二类型信息和第二数据信息,第二类型信息表示第二数据信息的类型为音频,例如该数据包的格式可以表示为:{type(图像):1字节,data(像素信息):m1字节,type(音频):1字节,data(音频数据):m2字节},其中靠前的type和data表示第一数据组,靠后的type和data表示第二数据组,m1和m2分别表示不同数据的字节数。
在又一个应用场景中,当一个图像帧的数据包括图像数据,且对该图像数据具有透明度要求时,则生成数据包可以包括生成至少两个数据组(例如上述的第一数据组和第三数据组),其中第一数据组包括第一类型信息和第一数据信息,第一类型信息表示第一数据信息的类型为视频或者图像;第三数据组包括第三类型信息和第三数据信息,第三类型信息表示第三数据信息的控制信息,其中控制信息包括透明度,第三数据信息可以与第一数据信息相同。例如该数据包的格式可以表示为:{type(图像):1字节,data(像素信息):m字节,type(透明度):1字节,data(像素信息):m字节},其中靠前的type和data表示第一数据组,靠后的type和data表示第三数据组,m表示像素信息的字节数。
进一步地,在另一个实施例中,当该一个图像帧的数据包括图像数据,且对该图像数据具有透明度要求时,生成数据包也可以包括生成一个数据组,该一个数据组中的类型信息包括图像类型和透明度,例如表示为{type(图像、透明度):1字节,data(像素信息):m字节}。在又一个实施例中,当该一个图像帧的数据仅包括图像数据时,生成数据包可以包括生成一个数据组,且该数据组中的类型信息可以为图像或视频,数据信息可以包括该一个图像帧的各像素的像素信息。
在另一些实施例中,方法300可以进一步包括:基于多帧屏幕画面的渲染完成事件,得到多帧的屏幕数据的数据信息;基于每帧的数据信息和对应的类型信息,生成至少一个数据组;以及基于多帧的数据信息对应的多个数据组,生成数据包。
例如,在一个应用场景中,包括多帧的数据信息的数据包可以表示为{type1(视频):1字节,data1(像素信息):m1字节,type2(视频):1字节,data2(像素信息):m2字节,type2(音频):1字节,data2(音频数据):m3字节,…},其中type1、data1可以分别表示第一帧的类型信息和数据信息,由type1和data1组成的数据组是与第一帧的数据信息对应的数据组;type2、data2可以分别表示第二帧的类型信息和数据信息,由type2和data2组成的数据组是与第二帧的数据信息对应的数据组;m1、m2、m3分别代表不同数据信息的字节数。
在本实施例中,示例性地,基于第一帧的数据信息data1和对应的类型信息type1,可以生成一个数据组,即{type1(视频):1字节,data1(像素信息):m1字节};基于第二帧的数据信息data2和对应的类型信息type2,可以生成两个数据组,即{type2(视频):1字节,data2(像素信息):m2字节,type2(音频):1字节,data2(音频数据):m3字节}。
在又一些实施例中,步骤3032中生成数据包还可以包括:在数据包中添加尺寸信息,尺寸信息用于表示数据信息的字节数大小。例如,数据包的格式可以表示为:{type:1字节,size:4字节,data:m字节,...},其中type表示类型信息,m表示数据信息的字节数,size表示尺寸信息(即数据信息的字节数m的大小)。当数据包包括多个数据组时,可以用type、size、data循环表示多种数据,直到数据包的n字节数据全部表示完成。
如图3中进一步示出的,在一些实施例中,方法300还可以包括:在步骤3033(虚线框示出)中,可以在数据包的头部添加包头,以生成包括包头和数据包的图像帧数据,其中包头可以包括用于表示数据包的数据长度的长度信息。
在一些实施例中,包头可以为固定长度的信息,例如设置为4字节数据等。根据这样的设置,可以便于分辨出接收到的数据是否为包头,或者数据包。在一个具体实施例中,图像帧数据的数据格式可以为{4字节数据,n字节数据},其中4字节数据可以为包头,并用于表示长度n(即长度信息);n字节数据可以为数据包,该数据包的数据长度为n字节。这里包头选用4字节,足够容纳4GB的内存,从而能够用于表示足够的长度信息。
进一步地,在确定了图像帧数据后,方法300还包括步骤304:发送图像帧数据。在一些实施例中,可以基于网络协议,发送图像帧数据。在另一个实施例中,图像帧数据可以包括数据包,在步骤304中,可以发送该数据包。在又一些实施例中,图像帧数据包括包头和数据包,在步骤304中,可以将包头和数据包一起发送。通过发送包头和数据包的图像帧数据,可以使得镜像接收端能够基于包头来判断一个完整数据包是否传输完成,可以实现对图像帧数据流的分割,以分割得到每个完整的数据包,从而可以有效避免数据传输过程中的粘包问题。
以上结合图3对根据本披露实施例的包括发送数据包的发起屏幕镜像的方法进行了示例性的描述,可以理解的是,通过生成包括类型信息的数据包,可以获取更全面和完整的屏幕镜像的数据(例如视频和音频等),以在镜像接收端呈现每个数据帧的完整信息,还能够根据需要传输数据信息的控制信息,适用于更多的屏幕镜像的场景中。还可以理解的是,上面的描述是示例性的而非限制性的,例如步骤3033可以根据需要进行选择,在一些实施例中,图像帧数据可以仅包括数据包,从而无需执行步骤3033。
在第二方面中,本披露提供一种镜像发起装置,其用于执行根据图1-图3任一所描述的方法。在一些实施例中,镜像发起装置可以包括扫描笔、词典笔或者学习机等,其中学习机可以包括听力宝等。在另一些实施例中,镜像发起装置可以包括使用Haas UI显示框架的大屏装置、小屏装置等。
可以理解的是,通过执行根据本披露实施例的发起屏幕镜像的方法,通过在渲染完成事件后添加调用接口,能够在不具有截屏(即获取屏幕数据)功能的设备中实现发起屏幕镜像的功能,特别是对于使用Haas UI显示框架的扫描笔、词典笔、学习机等设备上实现屏幕镜像。
示例性系统
在介绍了本披露示例性实施方式的方法之后,接下来,参考图4对本披露示例性实施方式的系统进行介绍。
图4示意性示出了根据本披露实施例的用于屏幕镜像的系统的示意性框图。如图4中所示,系统400可以包括镜像发起装置401和镜像接收装置402,镜像发起装置401可以配置用于执行前文中结合图1-图3任一所述的方法,镜像接收装置402可以配置用于接收用于屏幕镜像的图像帧数据。在一些实施例中,镜像接收装置402可以包括电脑、平板、手机、电视等。在另一些实施例中,镜像接收装置402可以包括扫描笔、词典笔、或者学习机等。为了便于理解镜像发起装置401与镜像接收装置402之间的交互过程,下面将结合图5的一个具体实施例进行说明。
图5示意性地示出了根据本披露实施例的镜像发起装置和镜像接收装置之间实现屏幕镜像的流程框图。如图5中所示,在镜像发起装置401处,可以执行操作501:获取屏幕数据。镜像发起装置401可以获取待镜像的每帧屏幕数据。镜像发起装置401可以通过执行前文中结合图1描述的步骤101和步骤102、或者结合图2中描述的步骤201和步骤202、或者结合图3中的步骤301和步骤302来实现获取屏幕数据,此处将不再赘述。
接着,镜像发起装置401可以执行操作502,对屏幕数据进行编码(例如进行H264编码),以生成数据信息。该操作502已经在前文中结合图3描述的步骤3031进行了说明,这里将不再赘述。在一些实施例中,镜像发起装置401可以直接将编码得到的数据信息作为图像帧数据。
进一步地,在一些实施例中,镜像发起装置402还可以配置用于:基于数据信息,生成图像帧数据的数据包。在另一些实施例中,镜像发起装置402还可以配置用于:在数据包的头部添加包头,以生成包括包头和数据包的图像帧数据。
如图5中进一步示出的,在获得图像帧数据后,镜像发起装置401可以在操作503中,基于网络协议,将图像帧数据传输给镜像接收装置402。在一些实施例中,镜像发起装置401和镜像接收装置402之间,可以通过TCP协议进行图像帧数据的传输。镜像发起装置401发送的图像帧数据可以缓存于镜像接收装置402的接收缓冲区中。在一些实施例中,镜像发起装置401可以直接将编码得到的数据信息作为图像帧数据进行发送。在另一些实施例中,镜像发起装置401可以将包括数据包的图像帧数据发送。在又一些实施例中,镜像发起装置401可以将包括包头和数据包的图像帧数据进行发送。
镜像接收装置402在操作504中,可以基于网络协议,从接收缓冲区中读取图像帧数据。在一些实施例中,图像帧数据可以包括一个或多个图像帧的数据。每个图像帧的数据中可以包括图像数据和/或音频数据等。在一些应用场景中,镜像发起装置401的屏幕画面为一幅静止画面,在操作504中接收到的图像帧数据可以包括一个图像帧的数据。在另一些应用场景中,镜像发起装置401的屏幕画面为视频,在操作504中接收到的图像帧数据可以包括多个图像帧的数据,以便在镜像接收装置401能够同屏显示该视频。在又一些应用场景中,镜像发起装置401的屏幕画面中还包含音频,在操作504中接收到的图像帧数据中也可以包括音频数据。
在一些实施例中,镜像接收装置402可以配置用于:响应于接收到包头,根据包头中的长度信息,判断包头后的数据包是否传输完成;以及响应于包头后的数据包传输完成,获取图像帧数据,其中包头包括用于表示数据包的数据长度的长度信息,数据包包括用于渲染的数据信息。
在一些实施例中,响应于接收到的包头后的数据包的数据长度不满足包头中的长度信息(即不足一个完整的数据包),则可以继续等待数据的到来。在另一些实施例中,响应于包头后的数据包传输完成,获取图像帧数据。这里的传输完成可以包括接收到的包头后的数据包的数据长度满足包头中的长度信息,即一个完整的数据包传输完成,此时可以通过至少获取该完整的数据包来实现获取图像帧数据的目的。
镜像接收装置402在读取到包头后,根据包头中的长度信息来读取数据包,根据这样的方式,可以解决基于TCP网络协议传输的数据流的粘包问题,以支持完整的数据包的传输。镜像接收装置402在读取完一个完整数据包后,可以继续基于下一个包头来读取下一个数据包。
在获得了完整的数据包之后,镜像接收装置402可以执行操作505,对图像帧数据进行解码。在一些实施例中,镜像接收装置402可以针对H264编码后的数据进行解码。具体地,可以将H264编码后得到的数据信息进行解码,还可以将YUV格式的数据信息转换为RGB格式的数据信息。
进一步地,在操作506中,可以对接收到的图像帧数据进行渲染,以得到用于显示的镜像画面。镜像接收装置402可以基于自身安装的系统进行渲染。在一些实施例中,镜像接收装置402可以采用Windows系统、Linux系统、或者macOS系统等。在另一些实施例中,镜像接收装置402可以以相应的帧率渲染图像帧数据。在又一些实施例中,镜像接收装置402可以使用SDL2软件库进行渲染,其可以支持多个平台,也可以直接接受YVU的数据格式,并进行内部自动转换,因此在一些实施例中,镜像接收装置402也可以不执行操作505而直接执行操作506。
在又一些实施例中,镜像接收装置402在渲染图像帧数据时可以配置用于:基于图像帧数据中的数据信息的格式,创建相应格式的纹理;以及将图像帧数据中的数据信息渲染到纹理上,以便将得到的渲染结果用于显示。在一些实施例中,图像帧数据中的数据信息的格式为YUV格式时,可以创建YUV格式的纹理。在另一些实施例中,将图像帧数据中的数据信息渲染到纹理上,可以是将图像帧数据中每个图像帧的数据分别渲染到纹理上,以便得到连续的渲染结果用于显示,以形成连续的图像序列进行播放。
具体地,在一个具体实施例中,当使用SDL进行渲染时,镜像接收装置402可以首先初始化SDL。例如,可以使用SDL_Init()函数初始化SDL库,并创建窗口和渲染器。然后,镜像接收装置402可以加载YUV图像帧数据。例如,可以使用文件读取、网络接收等方式加载YUV图像帧数据,并将其存储在内存中。接着,可以创建YUV格式的纹理。例如,可以使用SDL_CreateTexture()函数创建一个YUV格式的纹理,并将其锁定以填充YUV格式的图像帧数据。进一步地,镜像接收装置402可以渲染YUV格式的图像帧数据。例如,使用SDL_RenderCopy()函数将每个YUV图像渲染到纹理上,并可以使用SDL_RenderPresent()函数将渲染结果显示在屏幕上,以形成镜像画面。当镜像接收装置402加载的图像帧数据包括多个图像帧的数据时,在上述渲染过程后可以得到连续的图像序列以进行播放。最后,镜像接收装置402可以释放资源,例如使用SDL_DestroyTexture()函数销毁纹理,并使用SDL_DestroyRenderer()和SDL_DestroyWindow()函数销毁渲染器和窗口。
在又一些实施例中,镜像接收装置402接收到的图像帧数据的数据包中包括类型信息时,其可以根据数据包的每个数据组中的类型信息,使用相对应的数据信息进行渲染。在一些实施例中,响应于数据包中的类型信息为视频或图像,则可以采用上述渲染操作506对图像数据进行渲染;响应于数据包中的数据类型包括音频,可以使用音频处理方法对音频数据进行处理,以得到镜像音频,并可以在对图像或视频类型的数据信息进行渲染后,将渲染得到的镜像图像与镜像音频合成,以得到镜像画面;响应于数据包的类型信息包括控制信息时,可以在渲染图像帧数据时控制渲染过程,以得到镜像画面。
在第四方面中,本披露提供一种用于发起屏幕镜像的设备,包括,至少一个处理器;存储器,其存储有程序指令,当该程序指令由所述至少一个处理器执行时,使得所述设备执行根据本披露在前文中结合图1-图3任一所描述的方法。
图6示出了适于实现本披露实施方式的示例性设备的框图。如图1所示,设备600可以包括:中央处理单元(CPU)601、随机存取存储器(RAM)602、只读存储器(ROM)603、系统总线604、硬盘控制器605、键盘控制器606、串行接口控制器607、并行接口控制器608、显示控制器609、硬盘610、键盘611、串行外部设备612、并行外部设备613和显示器614。这些设备中,与系统总线604耦合的有CPU 601、RAM 602、ROM 603、硬盘控制器605、键盘控制器606、串行控制器607、并行控制器608和显示控制器609。硬盘610与硬盘控制器605耦合,键盘611与键盘控制器606耦合,串行外部设备612与串行接口控制器607耦合,并行外部设备613与并行接口控制器608耦合,以及显示器614与显示控制器609耦合。应当理解,图6所述的结构框图仅仅是为了示例的目的,而不是对本披露范围的限制。在某些情况下,可以根据具体情况增加或减少某些设备。
在第五方面中,本披露提供一种计算机可读存储介质,其存储有用于发起屏幕镜像的程序,当该程序由处理器来运行时,执行根据本披露在前文中结合图1-图3任一所描述的方法。
本领域技术技术人员知道,本披露的实施方式可以实现为一种系统、方法或计算机程序产品。因此,本披露可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本披露还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举示例)例如可以包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本披露操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络(包括局域网(LAN)或广域网(WAN))连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置的产品。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
应当注意,尽管在上文详细描述中提及了设备的若干装置或子装置,但是这种划分仅仅并非强制性的。实际上,根据本披露的实施方式,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
此外,尽管在附图中以特定顺序描述了本披露方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本披露的精神和原理,但是应该理解,本披露并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本披露旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。所附权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。
本披露的技术方案中,所涉及的用户个人信息的获取、存储和应用等,均符合相关法律法规的规定,且不违反公序良俗。

Claims (10)

1.一种发起屏幕镜像的方法,包括:
响应于接收到发起屏幕镜像的操作指令,获取每帧屏幕画面的渲染完成事件;
在所述渲染完成事件后添加调用接口,以获取待镜像的屏幕数据;
基于所述屏幕数据,确定用于屏幕镜像的图像帧数据;以及
发送所述图像帧数据。
2.根据权利要求1所述的方法,其中在所述渲染完成事件后添加调用接口包括调用以下操作:
在Haas UI显示框架下,创建画布;
使用所述Haas UI显示框架中的窗口管理器,遍历所述屏幕画面在渲染过程中的渲染元素;以及
基于所述渲染元素,在所述画布上绘制待镜像的屏幕画面,以获取所述屏幕画面的屏幕数据。
3.根据权利要求2所述的方法,还包括:
在Haas UI显示框架下,创建用于获取所述屏幕数据的位图;以及
将所述位图与所述画布绑定,以便在所述画布上绘制所述屏幕画面后,使得所述位图中保存所述屏幕画面,以得到所述屏幕数据。
4.根据权利要求1-3任一所述的方法,其中基于所述屏幕数据,确定用于屏幕镜像的图像帧数据包括:
对所述屏幕数据进行编码,以生成数据信息;以及
基于所述数据信息,生成所述图像帧数据的数据包。
5.根据权利要求4所述的方法,其中基于所述数据信息,生成所述数据包包括:
根据所述数据信息的类型和/或对所述数据信息的控制信息,确定所述数据信息的类型信息;
基于所述类型信息和所述数据信息,生成所述数据包。
6.根据权利要求4或5所述的方法,还包括:
在所述数据包的头部添加包头,以生成包括所述包头和所述数据包的图像帧数据,其中所述包头包括用于表示所述数据包的数据长度的长度信息。
7.一种镜像发起装置,其用于执行根据权利要求1-6任一所述的方法。
8.一种用于屏幕镜像的系统,包括:
根据权利要求7所述的镜像发起装置;以及
镜像接收装置,其配置用于:接收用于屏幕镜像的图像帧数据。
9.一种用于发起屏幕镜像的设备,包括,
至少一个处理器;
存储器,其存储有程序指令,当所述程序指令由所述至少一个处理器执行时,使得所述设备执行根据权利要求1-6的任一项所述的方法。
10.一种计算机可读存储介质,其存储有用于发起屏幕镜像的程序,当所述程序由处理器来运行时,执行根据权利要求1-6的任一项所述的方法。
CN202310998976.1A 2023-08-09 2023-08-09 发起屏幕镜像的方法、镜像发起装置、系统、设备及介质 Pending CN117093167A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310998976.1A CN117093167A (zh) 2023-08-09 2023-08-09 发起屏幕镜像的方法、镜像发起装置、系统、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310998976.1A CN117093167A (zh) 2023-08-09 2023-08-09 发起屏幕镜像的方法、镜像发起装置、系统、设备及介质

Publications (1)

Publication Number Publication Date
CN117093167A true CN117093167A (zh) 2023-11-21

Family

ID=88776369

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310998976.1A Pending CN117093167A (zh) 2023-08-09 2023-08-09 发起屏幕镜像的方法、镜像发起装置、系统、设备及介质

Country Status (1)

Country Link
CN (1) CN117093167A (zh)

Similar Documents

Publication Publication Date Title
CN109600666B (zh) 游戏场景中的视频播放方法、装置、介质以及电子设备
US7665112B2 (en) Dynamically generating video streams for slideshow presentations
CN111899322B (zh) 视频处理方法、动画渲染sdk和设备及计算机存储介质
KR102617258B1 (ko) 이미지 프로세싱 방법 및 장치
CN111193878B (zh) 一种多媒体文本信息处理方法、装置、介质和电子设备
CN110187858B (zh) 图像显示方法及系统
CN113573072B (zh) 一种图像处理方法、装置及相关组件
CN110782387B (zh) 图像处理方法、装置、图像处理器及电子设备
EP3177023B1 (en) Apparatus for cloud streaming service
EP1850290A2 (en) Image processing apparatus and method for preventing degradation of image quality when bit format of image is converted
CN114938408B (zh) 一种云手机的数据传输方法、系统、设备及介质
CN115225881A (zh) 一种数据传输方法、装置、设备和存储介质
CN104980798A (zh) 一种远端视频显示方法及装置
CN115225615B (zh) 虚幻引擎像素流送方法及装置
CN117093167A (zh) 发起屏幕镜像的方法、镜像发起装置、系统、设备及介质
CN115988265A (zh) 一种显示画面的渲染方法、装置和终端设备
WO2023273905A1 (zh) 信息同屏方法、发送端、接收端及计算机可读存储介质
CN108737877B (zh) 图像处理的方法、装置和终端设备
CN117093168A (zh) 接收屏幕镜像的方法、镜像接收装置、系统、设备及介质
CN110990109A (zh) 一种拼接屏回显方法、终端、系统及存储介质
CN110876069A (zh) 视频截图的获取方法、装置、设备及存储介质
JP2663922B2 (ja) 動画像符号化装置
WO2023193524A1 (zh) 直播视频处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品
CN110266915B (zh) 一种安卓设备上控制视频采集内容的方法和装置
US20240144537A1 (en) Data processing method and system, and electronic device

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