CN117608715A - 一种应用共享方法、装置、设备及存储介质 - Google Patents
一种应用共享方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117608715A CN117608715A CN202311227816.3A CN202311227816A CN117608715A CN 117608715 A CN117608715 A CN 117608715A CN 202311227816 A CN202311227816 A CN 202311227816A CN 117608715 A CN117608715 A CN 117608715A
- Authority
- CN
- China
- Prior art keywords
- screen
- application
- virtual display
- target
- display screen
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 71
- 230000008859 change Effects 0.000 claims abstract description 22
- 238000012544 monitoring process Methods 0.000 claims abstract description 7
- 230000000694 effects Effects 0.000 claims description 33
- 238000004590 computer program Methods 0.000 claims description 19
- 238000009877 rendering Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 11
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 description 22
- 230000006870 function Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/452—Remote windowing, e.g. X-Window System, desktop virtualisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1454—Digital 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请适用于设备智能控制技术领域,提供一种应用共享方法、装置、设备及存储介质,其中方法包括:在共享屏幕创建虚拟显示屏,并在所述虚拟显示屏中显示目标应用;在目标屏幕上创建活动容器并在所述活动容器中初始化表面;监听所述虚拟显示屏中目标应用的画面变更,获取所述画面变更对应的图像帧;将所述图像帧在所述活动容器中的所述表面渲染显示。该方案能够实现显示屏之间进行及时有效的应用共享。
Description
技术领域
本申请属于设备智能控制技术领域,尤其涉及一种应用共享方法、装置、设备及存储介质。
背景技术
随着智能座舱的发展,用户对车载娱乐需求越来越高。同时随着车载设备的智能化发展,能够逐渐支持大量第三方应用的同步使用。
有的车型中会配备多个车内娱乐屏幕,但大量第三方应用在同一时刻通常只能在一块屏幕上运行,例如视频应用、游戏应用或者聊天应用等在车内中控台屏幕上进行运行显示,多块娱乐屏之间无法及时有效实现应用共享,使得车内其他用户不能以较好的视角观看视频节目或参与互动游戏。
发明内容
本申请实施例提供了一种应用共享方法、装置、设备及存储介质,以解决现有技术中第三方应用无法在多块显示屏之间及时有效进行应用共享的问题。
本申请实施例的第一方面提供了一种应用共享方法,所述方法包括:
在共享屏幕创建虚拟显示屏,并在所述虚拟显示屏中显示目标应用;
在目标屏幕上创建活动容器并在所述活动容器中初始化表面;
监听所述虚拟显示屏中目标应用的画面变更,获取所述画面变更对应的图像帧;
将所述图像帧在所述活动容器中的所述表面渲染显示。
本申请实施例的第二方面提供了一种应用共享装置,包括:
第一显示模块,用于在共享屏幕创建虚拟显示屏,并在所述虚拟显示屏中显示目标应用;
创建模块,用于在目标屏幕上创建活动容器并在所述活动容器中初始化表面;
获取模块,用于监听所述虚拟显示屏中目标应用的画面变更,获取所述画面变更对应的图像帧;
第二显示模块,用于将所述图像帧在所述活动容器中的所述表面渲染显示。
本申请实施例的第三方面提供了一种车载设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述方法的步骤。
本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述方法的步骤。
本申请的第五方面提供了一种计算机程序产品,当所述计算机程序产品在车载设备上运行时,使得所述车载设备执行上述第一方面所述方法的步骤。
由上可见,本申请实施例中,针对不同的屏幕,在共享屏幕中创建虚拟显示屏,并在该虚拟显示屏中显示目标应用,在目标屏幕上创建活动容器并在该活动容器中初始化表面,随后监听虚拟显示屏中目标应用的画面变更,获取到画面变更对应的图像帧,将该图像帧在目标屏幕上活动容器中的表面内进行渲染显示,借助于虚拟显示屏,将一个屏幕中的待共享应用隔离出来,并在此基础上获取待共享应用在虚拟显示屏中随画面变更产生的图像帧,将其渲染到目标屏幕上容器创建的表面,显示渲染后的图像,实现第三方应用在显示屏之间进行及时有效的应用共享。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种应用共享方法的流程图一;
图2是本申请实施例提供的一种应用共享方法的流程图二;
图3是本申请实施例提供的一种应用共享装置的结构图;
图4是本申请实施例提供的一种车载设备的结构图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
具体实现中,本申请实施例中描述的车载设备包括但不限于诸如具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的车载电话、车载计算机之类的车载设备。
在接下来的讨论中,描述了包括显示器和触摸敏感表面的车载设备。然而,应当理解的是,车载设备可以包括诸如物理键盘、鼠标和/或控制杆的一个或多个其它物理用户接口设备。
车载设备支持各种应用程序,例如以下中的一个或多个:绘图应用程序、演示应用程序、文字处理应用程序、网站创建应用程序、盘刻录应用程序、电子表格应用程序、游戏应用程序、电话应用程序、视频会议应用程序、电子邮件应用程序、即时消息收发应用程序、锻炼支持应用程序、照片管理应用程序、数码相机应用程序、数字摄影机应用程序、web浏览应用程序、数字音乐播放器应用程序和/或数字视频播放器应用程序。
可以在车载设备上执行的各种应用程序可以使用诸如触摸敏感表面的至少一个公共物理用户接口设备。可以在应用程序之间和/或相应应用程序内调整和/或改变触摸敏感表面的一个或多个功能以及车载设备上显示的相应信息。这样,车载设备的公共物理架构(例如,触摸敏感表面)可以支持具有对用户而言直观且透明的用户界面的各种应用程序。
应理解,本实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
随着智能座舱的发展,车内娱乐屏幕越来越多,用户对车载娱乐需求越来越高。同时随着车载设备的智能化发展,能够逐渐支持大量第三方应用的同步使用。
在应用过程中,大量三方应用在同一时刻都只能运行到一块屏幕,为了使多块娱乐屏之间能够及时有效实现应用共享,用户能以较好的视角观看视频节目或参与互动游戏。
在此基础上,本申请实施例提出一种应用共享方法,在共享屏幕中创建虚拟显示屏,并在该虚拟显示屏中显示目标应用,借助于虚拟显示屏,将一个屏幕中的待共享应用隔离出来,在目标屏幕上创建活动容器并在该活动容器中初始化表面,随后监听虚拟显示屏中目标应用的画面变更,获取到画面变更对应的图像帧,将该图像帧在目标屏幕上活动容器中的表面内进行渲染显示,以将共享屏幕中的目标应用的显示画面共享至目标屏幕中,实现第三方应用在显示屏之间进行及时有效的应用共享。
为了说明本申请所述的技术方案,下面通过具体实施例来进行说明。
参见图1,图1是本申请实施例提供的一种应用共享方法的流程图一。如图1所示,一种应用共享方法,该方法包括以下步骤:
步骤101,在共享屏幕创建虚拟显示屏,并在虚拟显示屏中显示目标应用。
其中,目标应用为待共享的应用。在共享屏幕中可以同时显示多个应用。目标应用为该多个应用中的一个或者多个。将目标应用移至虚拟显示屏中,使待共享的应用能够在额外容器中实施应用共享的数据处理过程,不干扰其他应用在共享屏幕中的正常显示。
其中,共享屏幕将目标应用共享至目标屏幕。目标屏幕可以为一个或者多个。
具体地,目标屏幕与共享屏幕可以为不同设备中的屏幕,实现应用在不同设备间的共享。
或者,目标屏幕与共享屏幕同一设备中的不同屏幕,实现应用在同一设备的不同显示屏上的共享。
在一个示例中,同一设备中可以包含若干个显示屏,其中一个显示屏(第一屏幕)可以向其他多个显示屏(第二屏幕)进行应用共享,那么该一个显示屏形成为共享屏幕,其他多个显示屏形成为目标屏幕。
在具体应用中,第一屏幕为车载设备的主控屏幕;和/或,第二屏幕为多个,多个第二屏幕分布于座舱内的不同座位处。
以智能座舱为例,车辆中配置有车载中控设备,车载中控设备在座舱内的中控台处设置有主控屏幕,座舱内的不同座位处可以设置显示屏,这些显示屏形成为车载中控设备的显示外设。那么用户可以通过操作中控台的主控屏幕,将其中显示的多个应用中的目标应用向其他座位上配置的显示屏进行共享。
这种情况下,车载中控设备中的主控屏幕形成为共享屏幕,其他座位上配置的显示屏形成为同一设备中的目标屏幕。
此外,上述步骤101对应于应用共享过程,该步骤及应用共享的实施具有一定的触发条件。
具体地,创建虚拟显示屏的时机可以在用户发起应用共享时,也可在系统启动时。
在一个实施方式中,可以获取用户在设备中第一屏幕发起的应用共享请求,该第一屏幕形成为共享屏幕,其中,应用共享请求中指示有设备中的至少一个第二屏幕,该至少一个第二屏幕形成为目标屏幕。
这里,用户可通过全局手势或快捷面板触发应用共享服务,用户可以选择将当前应用共享到一个或多个屏幕,以实现多位乘客同时观影、玩游戏的需求。
进而响应于用户在设备中第一屏幕发起的应用共享请求,执行步骤101在共享屏幕创建虚拟显示屏,并在虚拟显示屏中显示待共享应用。
即,响应于用户发起应用共享的操作开始执行步骤101。
在另一个实施方式中,可以在设备中系统启动时,执行步骤101在共享屏幕创建虚拟显示屏,并在虚拟显示屏中显示目标应用。
即,随着设备中系统的启动,则自动执行对目标应用的共享处理过程。
其中,系统可以是指设备中安装的操作系统。或者是系统中安装的用于实现用于共享功能的软件系统,在一个示例中,系统为与应用共享管理器对应的软件系统,即在在设备中应用共享管理器启动时执行步骤101。
上述步骤101中,为实现画面共享,这里需要先将目标应用在虚拟显示屏中进行显示。
在具体实现过程中,为在共享屏幕中创建虚拟显示屏,可以引入屏幕生成配置信息;基于该屏幕生成配置信息,在共享屏幕创建虚拟显示屏。
其中,屏幕生成配置信息为创建虚拟显示屏所需的数据配置信息。
该屏幕生成配置信息可以基于用户发起屏幕共享所在屏幕(即共享屏幕)的屏幕信息或使用特定的、固定的配置信息,例如使用固定的1080P屏幕配置。
即,该屏幕生成配置信息可以包括共享屏幕关联的屏幕信息,或者预设置的特定配置信息。
其中,该共享屏幕关联的屏幕信息、预设置的特定配置信息例如为屏幕宽度、高度、像素密度等屏幕特性信息。
在实施过程中,使用Android DisplayManager类来获取目标应用所在屏幕的相关信息,并将这些信息存储在DisplayMetrics对象dm中。
DisplayManager是Android系统中用于管理显示设备的类,它提供了一些方法来获取和控制显示设备的属性和状态。其中,getDisplayMetrics()方法可以用于获取当前显示设备的一些相关信息。
通过调用DisplayManager的getDisplayMetrics()方法,可以获取到当前显示设备的DisplayMetrics对象,然后可以通过该对象的属性来获取屏幕的相关信息,如:屏幕宽度:dm.widthPixels、屏幕高度:dm.heightPixels、屏幕密度:dm.density、屏幕像素密度DPI:dm.densityDpi、字体缩放因子:dm.scaledDensity、状态栏高度:dm.statusBarHeight等屏幕特性信息。
基于上述DisplayMetrics屏幕信息创建虚拟显示屏,virtualDisplay=DisplayManager.createVirtualDisplay(dm,ImageReader)。以根据共享屏幕的不同特性进行虚拟屏的适配和布局。
其中,创建一个虚拟显示屏(virtualDisplay),使用DisplayManager的createVirtualDisplay方法来创建。createVirtualDisplay方法需要传入两个参数:dm和ImageReader。ImageReader是一个用于读取图像数据的类,它可以指示虚拟显示屏中的图像数据。
在创建完虚拟显示屏之后,将待共享的目标应用移动到虚拟显示屏,ActivityTaskManager.moveTaskToDisplay(task,virtualDisplay)。
该过程,直接将应用移动到VirtualDisplay,使用VirtualDisplay作为应用运行的载体,以基于该VirtualDisplay开启屏幕共享。
步骤102,在目标屏幕上创建活动容器并在活动容器中初始化表面。
其中,活动容器是指Activity容器。
Activity容器是Android应用程序中管理和组织活动(Activity)的一种组件。Activity容器负责创建、启动、暂停、恢复和销毁活动,并处理活动之间的导航和通信。它可以被认为是应用程序的主要用户界面,负责呈现用户界面和处理用户交互。在Android应用程序中,每个活动都必须在Activity容器中运行。
其中,Surface是Android中的一个类,用于绘制和管理图形的表面。它可以用来显示图像、视频、动画等内容。Activity容器是用于管理Activity生命周期的容器,而Surface是用于绘制和管理图形的表面。它们可以一起使用,以在Android应用程序中显示和操作图形。
这里在活动容器中初始化表面,即为在Activity容器中初始化Surface。
具体地,在目标屏幕中创建一个或多个目标屏幕的容器Activity:ActivityAppsShareManager.startRenderActivity(displays)。
该处理具体需要在容器Activity中启动一个渲染活动,该活动将在指定的显示器(目标屏幕)上进行渲染。参数displays表示要在哪些显示器上进行渲染,可以是一个或多个显示器(目标屏幕)的标识符。
在容器Activity内创建用于承载画面的Surface,并注册到应用共享管理器:
AppsShareManager.addSurface(new Surface(TextureView:SurfaceTexture)。
这段代码是向AppsShareManager(即应用共享管理器)添加一个Surface,该Surface使用TextureView和SurfaceTexture来创建。
TextureView是Android中的一个视图控件,用于显示可以通过硬件加速渲染的视频、图像或其他图形表面。SurfaceTexture是一个用于从相机、视频播放器等源中获取图像帧的类。因此,这段代码的目的是将一个使用TextureView和SurfaceTexture创建的Surface添加到AppsShareManager中,以便在应用程序中使用该Surface进行图像渲染或其他操作。
其中,在一个具有应用共享的设备中可以创建应用共享管理器AppsShareManager。可选地,应用共享管理器可以是在设备中操作系统启动后,随之创建得到。
应用共享管理器为一个抽象的工具类描述,用于管理本方法中的各个模块,实现应用共享管理,其也可以为任何其他有类似角色的名字,例如:ShareManager,MirrorManager等。
具体地,目标屏幕中活动容器里初始化形成表面后,需要将其注册于应用共享管理器中,共享屏幕中的虚拟显示屏注册于应用共享管理器中,以通过共享管理器实现应用在不同屏幕间的共享及信息传递。
步骤103,监听虚拟显示屏中目标应用的画面变更,获取该画面变更对应的图像帧。
当共享屏幕中虚拟显示屏中应用画面变更时,使用lmageReader直接读取图像帧数据,以将图像帧数据在多个显示器(目标屏幕)上渲染显示。
步骤104,将图像帧在活动容器中的表面渲染显示。
这里,将虚拟显示屏中的应用画面渲染到一个或多个物理屏幕(目标屏幕)中,实现应用的多屏共享。
在创建有应用共享管理器AppsShareManager的情况下,可以将图像帧数据通过AppsShareManager分发至一个或多个物理屏幕中:
AppsShareManager.renderlmageOnDisplays(image,displays)。
通过该函数将一个图像在多个显示器上渲染显示。参数image是要渲染的图像,displays是目标屏幕的显示器的标识符。
通过共享管理器将图像帧数据分发至各个目标屏幕上活动容器中的表面,进行图像渲染显示,实现将图像帧在活动容器中的表面渲染显示。
在一个具体的应用共享过程中,具体执行如下操作:
启动应用共享管理器,用户在发起应用共享请求,基于该应用共享请求的发起所在屏幕(即共享屏幕)的屏幕信息在该共享屏幕上创建虚拟显示屏,将应用共享请求的发起所在屏幕中的待共享的目标应用移动到虚拟显示屏,在被共享的目标屏幕上创建容器Activity并初始化相应的Surface,若目标屏幕为多个,则需要分别在各个屏幕上创建容器Activity并初始化相应的Surface,使用ImageReader监听虚拟显示屏的画面变更,将获取到的图像帧Image渲染到各个目标屏幕的容器创建的Surface,并重复使用ImageReader监听虚拟显示屏的画面变更,将获取到的图像帧Image渲染到各个目标屏幕的容器创建的Surface(即重复步骤103及步骤104),即可实现应用画面共享,直至目标应用画面不变更,或者退出目标应用。
上述应用共享过程中,仅使用一个VirtualDisplay,用于被共享应用运行容器,直接读取VirtualDisplay上的画面数据,将读取到的数据分发渲染到多个被投屏的目标屏幕,实现应用在不同屏幕间的及时有效共享。
且应用共享过程中,每新增一个被投屏的目标屏幕,仅需要在该一个新的目标屏幕中创建一个Activity容器即可,无需多创建Display,简化多屏应用共享过程中的操作流程,减少系统资源的占用,以较低的成本将一个屏幕中的应用进行分发渲染,实现应用跨屏共享,且现有的海量第三方应用无需任何修改即可使用本方案实现应用的多屏共享,设备中接入新应用无额外成本,满足用户最佳角度观看视频或参与互动游戏的需求。
本申请实施例中还提供了应用共享方法的不同实施方式。
参见图2,图2是本申请实施例提供的一种应用共享方法的流程图二。如图2所示,一种应用共享方法,该方法包括以下步骤:
步骤201,在共享屏幕创建虚拟显示屏,并在虚拟显示屏中显示目标应用。
步骤202,在目标屏幕上创建活动容器并在活动容器中初始化表面。
步骤203,监听虚拟显示屏中目标应用的画面变更,获取画面变更对应的图像帧。
步骤204,将图像帧在活动容器中的表面渲染显示。
上述步骤201至步骤204的具体实现过程,可以参见前述实施例中步骤101至步骤104中各个可实现方式的相关描述过程,为避免重复,这里不再一一赘述。
在步骤204实现目标应用从共享屏幕共享至目标屏幕进行显示之后,还可以包含用户由目标屏幕向共享屏幕的应用反控实施过程。该过程具体包含步骤205至步骤207。
步骤205,获取目标屏幕的第一触控事件。
该第一触控事件关联目标屏幕中前述表面显示的图像帧。
这里,该表面是指Android中的Surface。Surface是Android中的一个类,用于绘制和管理图形的表面。
Activity容器是用于管理Activity生命周期的容器,它们可以一起使用,以在Android应用程序中显示和操作图形。
由于目标屏幕的Activity容器创建的表面上渲染显示有共享而来的目标应用的图像帧。
因此,第一触控事件与该图像帧相关联。该第一触控事件可以是用户在目标屏幕中该图像帧的显示区域内触发的触控事件,即用户可以在目标屏幕中对共享来的目标应用的显示画面进行触控操作。
目标屏幕上可以通过RenderActivity接受触控事件onTouchEvent(event)。
目标屏幕在捕捉到触控操作后,确定触控操作落在图像帧上的触控位置,获取触控坐标。
步骤206,对第一触控事件进行坐标转换后,得到第二触控事件。
这里,需要在第一触控事件基础上,对用户触控操作对应的触控坐标转换,具体需要基于目标应用在目标屏幕中的显示尺寸与目标应用在共享屏幕中的显示尺寸进行位置坐标转换,得到新的触控事件,即第二触控事件。
其中,可选地,在创建有应用共享管理器AppsShareManager的情况下,可以由AppsShareManager基于第一触控事件进行坐标转换,得到第二触控事件:
NewEvent=AppsShareManager.transform(SourceSize,DestSize,event)。
步骤207,将第二触控事件发送至虚拟显示屏进行响应。
将第二触控事件发送至虚拟显示屏后,虚拟显示屏中的目标应用对转换后的第二触控事件进行响应,实现应用反控。
其中,在创建有应用共享管理器AppsShareManager的情况下,转换后的触控事件NewEvent由AppsShareManager转发到共享屏幕中的虚拟显示屏:
AppsShareManager.sendPointer(NewEvent)。
上述实施过程,使用目标屏幕中用于实现共享应用图像渲染的容器Activity来接受触控事件,后续将触控事件直接经过坐标转换后分发到目标屏幕中的虚拟屏进行响应,支持用户在不同屏幕上实施对共享屏幕中共享应用的反控,实现应用的画面共享与控制共享,使得用户在享受应用画面共享的同时,可以参与到应用控制与游戏控制中,有效参与共享应用的操控及游戏互动。
参见图3,图3是本申请实施例提供的一种应用共享装置的结构图,为了便于说明,仅示出了与本申请实施例相关的部分。
所述应用共享装置300包括:
第一显示模块301,用于在共享屏幕创建虚拟显示屏,并在所述虚拟显示屏中显示目标应用;
创建模块302,用于在目标屏幕上创建活动容器并在所述活动容器中初始化表面;
获取模块303,用于监听所述虚拟显示屏中目标应用的画面变更,获取所述画面变更对应的图像帧;
第二显示模块304,用于将所述图像帧在所述活动容器中的所述表面渲染显示。
其中,该装置还包括:
控制模块,用于:
获取所述目标屏幕的第一触控事件,所述第一触控事件关联所述目标屏幕中所述表面显示的所述图像帧;
对所述第一触控事件进行坐标转换后,得到第二触控事件;
将所述第二触控事件发送至所述虚拟显示屏进行响应。
其中,所述第二显示模块304,具体用于:
创建应用共享管理器,并将所述表面注册于所述应用共享管理器中;
通过所述应用共享管理器将所述图像帧发送至所述活动容器中的所述表面进行渲染显示。
其中,所述装置还包括:
第一响应模块,用于:
获取用户在设备中第一屏幕发起的应用共享请求,所述应用共享请求中指示有所述设备中的至少一个第二屏幕;
响应所述应用共享请求,执行所述在共享屏幕创建虚拟显示屏,并在所述虚拟显示屏中显示待共享应用的步骤;
其中,所述第一屏幕形成为所述共享屏幕,所述至少一个第二屏幕形成为所述目标屏幕。
其中,所述第一屏幕为车载设备的主控屏幕;和/或,所述第二屏幕为多个,多个所述第二屏幕分布于座舱内的不同座位处。
其中,所述装置还包括:
第二响应模块,用于在设备中系统启动时,执行所述在共享屏幕创建虚拟显示屏,并在所述虚拟显示屏中显示目标应用的步骤。
其中,所述第一显示模块301,具体用于:
获取屏幕生成配置信息;所述屏幕生成配置信息包括所述共享屏幕关联的屏幕信息,或者预设置的特定配置信息;
基于所述屏幕生成配置信息,在所述共享屏幕创建所述虚拟显示屏。
本申请实施例提供的应用共享装置能够实现上述应用共享方法的实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
图4是本申请实施例提供的一种车载设备的结构图。如该图所示,该实施例的车载设备4包括:至少一个处理器40(图4中仅示出一个)、存储器41以及存储在所述存储器41中并可在所述至少一个处理器40上运行的计算机程序42,所述处理器40执行所述计算机程序42时实现上述任意各个方法实施例中的步骤。
所述车载设备4可包括,但不仅限于,处理器40、存储器41。本领域技术人员可以理解,图4仅仅是车载设备4的示例,并不构成对车载设备4的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述车载设备还可以包括输入输出设备、网络接入设备、总线等。
所述处理器40可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器41可以是所述车载设备4的内部存储单元,例如车载设备4的硬盘或内存。所述存储器41也可以是所述车载设备4的外部存储设备,例如所述车载设备4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器41还可以既包括所述车载设备4的内部存储单元也包括外部存储设备。所述存储器41用于存储所述计算机程序以及所述车载设备所需的其他程序和数据。所述存储器41还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/车载设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/车载设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序产品来实现,当计算机程序产品在车载设备上运行时,使得所述车载设备执行时实现可实现上述各个方法实施例中的步骤。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种应用共享方法,其特征在于,所述方法包括:
在共享屏幕创建虚拟显示屏,并在所述虚拟显示屏中显示目标应用;
在目标屏幕上创建活动容器并在所述活动容器中初始化表面;
监听所述虚拟显示屏中目标应用的画面变更,获取所述画面变更对应的图像帧;
将所述图像帧在所述活动容器中的所述表面渲染显示。
2.根据权利要求1所述的方法,其特征在于,所述将所述图像帧在所述活动容器中的所述表面渲染显示之后,所述方法还包括:
获取所述目标屏幕的第一触控事件,所述第一触控事件关联所述目标屏幕中所述表面显示的所述图像帧;
对所述第一触控事件进行坐标转换后,得到第二触控事件;
将所述第二触控事件发送至所述虚拟显示屏进行响应。
3.根据权利要求1所述的方法,其特征在于,所述将所述图像帧在所述活动容器中的所述表面渲染显示,包括:
创建应用共享管理器,并将所述表面注册于所述应用共享管理器中;
通过所述应用共享管理器将所述图像帧发送至所述活动容器中的所述表面进行渲染显示。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取用户在设备中第一屏幕发起的应用共享请求,所述应用共享请求中指示有所述设备中的至少一个第二屏幕;
响应所述应用共享请求,执行所述在共享屏幕创建虚拟显示屏,并在所述虚拟显示屏中显示待共享应用的步骤;
其中,所述第一屏幕形成为所述共享屏幕,所述至少一个第二屏幕形成为所述目标屏幕。
5.根据权利要求4所述的方法,其特征在于,所述第一屏幕为车载设备的主控屏幕;和/或,所述第二屏幕为多个,多个所述第二屏幕分布于座舱内的不同座位处。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在设备中系统启动时,执行所述在共享屏幕创建虚拟显示屏,并在所述虚拟显示屏中显示目标应用的步骤。
7.根据权利要求1所述的方法,其特征在于,所述在共享屏幕创建虚拟显示屏,包括:
获取屏幕生成配置信息;所述屏幕生成配置信息包括所述共享屏幕关联的屏幕信息,或者预设置的特定配置信息;
基于所述屏幕生成配置信息,在所述共享屏幕创建所述虚拟显示屏。
8.一种应用共享装置,其特征在于,包括:
第一显示模块,用于在共享屏幕创建虚拟显示屏,并在所述虚拟显示屏中显示目标应用;
创建模块,用于在目标屏幕上创建活动容器并在所述活动容器中初始化表面;
获取模块,用于监听所述虚拟显示屏中目标应用的画面变更,获取所述画面变更对应的图像帧;
第二显示模块,用于将所述图像帧在所述活动容器中的所述表面渲染显示。
9.一种车载设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311227816.3A CN117608715A (zh) | 2023-09-21 | 2023-09-21 | 一种应用共享方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311227816.3A CN117608715A (zh) | 2023-09-21 | 2023-09-21 | 一种应用共享方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117608715A true CN117608715A (zh) | 2024-02-27 |
Family
ID=89946752
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311227816.3A Pending CN117608715A (zh) | 2023-09-21 | 2023-09-21 | 一种应用共享方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117608715A (zh) |
-
2023
- 2023-09-21 CN CN202311227816.3A patent/CN117608715A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110908625B (zh) | 多屏显示方法、装置、设备、系统、舱体及存储介质 | |
JP6479142B2 (ja) | ユーザ介入なくレイアウトに従った画像識別及び編成 | |
US10016679B2 (en) | Multiple frame distributed rendering of interactive content | |
US8441475B2 (en) | Arrangements for enhancing multimedia features in a virtual universe | |
US8836728B2 (en) | Techniques to magnify images | |
CN110377263B (zh) | 图像合成方法、装置、电子设备及存储介质 | |
US20090265661A1 (en) | Multi-resolution three-dimensional environment display | |
KR101279680B1 (ko) | 모션 데스크톱 | |
EP3311565B1 (en) | Low latency application streaming using temporal frame transformation | |
CN110166810A (zh) | 视频渲染引擎切换方法、装置、设备及可读存储介质 | |
US10855481B2 (en) | Live ink presence for real-time collaboration | |
CN113840154A (zh) | 基于虚拟礼物的直播互动方法、系统及计算机设备 | |
CN107103890A (zh) | 固定方向显示器上的显示应用 | |
CN107025100A (zh) | 播放多媒体数据的方法、界面渲染方法及装置、设备 | |
CN111432264A (zh) | 基于媒体信息流的内容展示方法、装置、设备及存储介质 | |
CN116821040B (zh) | 基于gpu直接存储器访问的显示加速方法、装置及介质 | |
CN117608715A (zh) | 一种应用共享方法、装置、设备及存储介质 | |
JP2021522721A (ja) | 画面キャプチャ方法、端末および記憶媒体 | |
CN110944239A (zh) | 一种视频播放的方法和装置 | |
CN111158566A (zh) | 一种事件处理方法、装置、设备和存储介质 | |
CN111724296B (zh) | 用于展示图像的方法、装置、设备以及存储介质 | |
US20230409195A1 (en) | Display method, terminal device and non-transitory storage medium | |
CN113660500A (zh) | 直播房间的展示方法、装置、存储介质及电子设备 | |
CN116932113A (zh) | 一种应用共享方法、装置、设备及存储介质 | |
CN117369930A (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 |