CN114028801A - 基于云端的用户输入方法、装置、设备及存储介质 - Google Patents

基于云端的用户输入方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN114028801A
CN114028801A CN202111342918.0A CN202111342918A CN114028801A CN 114028801 A CN114028801 A CN 114028801A CN 202111342918 A CN202111342918 A CN 202111342918A CN 114028801 A CN114028801 A CN 114028801A
Authority
CN
China
Prior art keywords
input
cloud
client
preset
input method
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
CN202111342918.0A
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 Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network 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 Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN202111342918.0A priority Critical patent/CN114028801A/zh
Publication of CN114028801A publication Critical patent/CN114028801A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/23Input arrangements for video game devices for interfacing with the game device, e.g. specific interfaces between game controller and console
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/10Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals
    • A63F2300/1025Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals details of the interface with the game device, e.g. USB version detection
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/30Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by output arrangements for receiving control signals generated by the game device
    • A63F2300/308Details of the user interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本申请提供一种基于云端的用户输入方法、装置、设备及存储介质,涉及计算机技术领域。该方法包括:将预设云端输入法部署至所述服务器;响应于接收到客户端发送的输入操作的触发操作,调用所述预设云端输入法;根据所述预设云端输入法的界面内容编码生成包括预设云端输入法的视频流数据;将所述视频流数据发送至所述客户端,以在客户端上显示包括云端输入法的界面内容的视频画面。相对于现有技术,避免了不同设备之间存在兼容性问题,导致用户交互过程中云端输入法的部分功能键失效的问题。

Description

基于云端的用户输入方法、装置、设备及存储介质
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种基于云端的用户输入方法、装置、设备及存储介质。
背景技术
云游戏(cloud gaming)是以云计算为基础的运行游戏的一种新方式。该项技术由Onlive公司率先提出。2018年,随着谷歌、微软、英伟达、索尼等巨头的加入,云游戏的热度在持续上升。在云游戏模式下,游戏画面的渲染工作是在服务器端完成的,渲染后的游戏画面经过编码,经由网络串流(streaming)到游戏玩家的终端上。在客户端,游戏玩家不再需要高档的游戏设备,只需要基本的视频解码能力就可以进行游戏。
云游戏存在许多用户输入的交互场景,现有技术中用户交互场景下,一般需要客户端在接收到交互通知后,在游戏界面内弹出本地键盘,并且客户端监听用户的输入,把用户输入的内容传给云端,云端把收到的输入内容转发给游戏,并在游戏界面内显示用户输入的内容。
但是这样的方式由于输入设备和输入法种类繁多,可能会出现兼容性问题导致云端输入法的部分功能键失效,并且可能存在后续接入设备不兼容的问题。
发明内容
本申请的目的在于,针对上述现有技术中的不足,提供一种基于云端的用户输入方法、装置、设备及存储介质,以解决现有技术中不同设备之间存在兼容性问题,导致用户交互过程中云端输入法的部分功能键失效的问题。
为实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请一实施例提供了一种基于云端的用户输入方法,所述方法包括:
将预设云端输入法部署至所述服务器;
响应于接收到客户端发送的输入操作的触发操作,调用所述预设云端输入法;
根据所述预设云端输入法的界面内容编码生成包括预设云端输入法的视频流数据;
将所述视频流数据发送至所述客户端,以在所述客户端上显示包括所述云端输入法的界面内容的视频画面。
可选地,所述将预设云端输入法部署至所述服务器,包括:
将预设云端输入法预安装至服务器系统的镜像中;
根据所述服务器系统的镜像中预安装的预设云端输入法,在各云端容器中安装对应的预设云端输入法。
可选地,所述将预设云端输入法预安装至服务器系统的镜像中,包括:
将所述预设云端输入法的文件添加至所述服务器系统的镜像的编译文件夹中;
采用预设编译方式重新编译所述编译文件夹中的编译源码。
可选地,响应于接收到客户端发送的输入操作的触发操作,调用所述预设云端输入法,包括:
响应于接收到客户端发送的输入操作的触发操作,在对应的云端容器中调用所述预设云端输入法。
可选地,所述响应于接收到客户端发送的输入操作的触发操作,调用所述预设云端输入法,包括:
响应于接收到的客户端发送的输入操作的触发操作,确定所述输入操作对应的输入设备的设备类型;所述输入设备的设备类型包括:所述客户端对应的终端设备、外部设备中的任一种;
根据所述输入设备的设备类型,在对应的云端容器中调用所述输入设备的设备类型对应的预设类型的云端输入法。
可选地,所述确定所述输入操作对应的输入设备的类型,包括:
通过与所述客户端建立的连接,获取所述客户端发送的当前输入设备的设备类型。
可选地,所述方法还包括:
获取所述客户端基于所述预设云端输入法的图形用户界面发送的输入操作数据;
根据所述输入操作数据,确定所述输入操作数据对应的输出内容;
向所述客户端发送根据所述输入操作数据生成的输出内容。
可选地,所述获取所述客户端基于所述预设云端输入法的图形用户界面发送的输入操作数据,包括:
通过与所述客户端建立的连接,获取客户端发送的序列化后的输入操作数据。
可选地,所述根据所述输入操作数据,确定所述输入操作数据对应的输出内容,包括:
对所述序列化后的输入操作数据进行反序列化,确定所述输入操作数据对应的输出内容。
可选地,所述方法还包括:
响应于接收到的客户端发送的长连接建立请求,向所述客户端发送所述长连接建立请求对应的建立响应。
第二方面,本申请另一实施例提供了一种基于云端的用户输入装置,应用于服务器,所述装置包括:部署模块、调用模块、生成模块和发送模块,其中:
所述部署模块,用于将预设云端输入法部署至所述服务器;
所述调用模块,用于响应于接收到客户端发送的输入操作的触发操作,调用所述预设云端输入法;
所述生成模块,用于根据所述预设云端输入法的界面内容编码生成包括预设云端输入法的视频流数据;
所述发送模块,用于将所述视频流数据发送至所述客户端,以在所述客户端上显示包括所述云端输入法的界面内容的视频画面。
可选地,所述装置还包括:安装模块,用于将预设云端输入法预安装至服务器系统的镜像中;根据所述服务器系统的镜像中预安装的预设云端输入法,在各云端容器中安装对应的预设云端输入法。
可选地,所述装置还包括:添加模块和编译模块,其中:
所述添加模块,用于将所述预设云端输入法的文件添加至所述服务器系统的镜像的编译文件夹中;
所述编译模块,用于采用预设编译方式重新编译所述编译文件夹中的编译源码。
可选地,所述调用模块,具体用于响应于接收到客户端发送的输入操作的触发操作,在对应的云端容器中调用所述预设云端输入法。
可选地,所述装置还包括:确定模块,用于响应于接收到的输入操作的触发操作,确定所述输入操作对应的输入设备的设备类型;所述输入设备的设备类型包括:所述客户端对应的终端设备、外部设备中的任一种;
所述调用模块,具体用于根据所述输入设备的设备类型,在对应的云端容器中调用所述输入设备的设备类型对应的预设类型的云端输入法。
可选地,所述装置还包括:获取模块,用于通过与所述客户端建立的连接,获取所述客户端发送的当前输入设备的设备类型。
可选地,所述获取模块,具体用于获取所述客户端基于所述预设云端输入法的图形用户界面发送的输入操作数据;
所述确定模块,具体用于根据所述输入操作数据,确定所述输入操作数据对应的输出内容;
所述生成模块,具体用于向所述客户端发送根据所述输入操作数据生成的输出内容。
可选地,所述获取模块,具体用于通过与所述客户端建立的连接,获取客户端发送的序列化后的输入操作数据。
可选地,所述确定模块,具体用于对所述序列化后的输入操作数据进行反序列化,确定所述输入操作数据对应的输出内容。
可选地,所述发送模块,具体用于响应于接收到的客户端发送的长连接建立请求,向所述客户端发送所述长连接建立请求对应的建立响应。
第三方面,本申请另一实施例提供了一种基于云端的用户输入设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当基于云端的用户输入设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如上述第一方面任一所述方法的步骤。
第四方面,本申请另一实施例提供了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上述第一方面任一所述方法的步骤。
本申请的有益效果是:采用本申请提供的基于云端的用户输入方法,由于服务器上预先部署了预设云端输入法,因此在服务器接收到客户端发送的输入操作的触发操作时,会调用预设云端输入法,并根据预设云端输入法和客户端的显示内容生成包括预设云端输入法的视频流数据,并将生成的包括预设输入法的视频流数据发送至客户端,这样的输入方法由于是直接将预设云端输入法部署在服务器上的,而不是直接使用各客户端的本地输入法,所以克服了客户端本身由于设备不同,造成在客户端的图形用户界面中在显示不同云端输入法时兼容性的问题,即采用本申请提供的方法,在确定包括预设云端输入法的图形用户界面时无需考虑兼容性问题,不但提高了用户的使用感受,并且提高了开发时间,提升了开发效率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请一实施例提供的基于云端的用户输入方法的流程示意图;
图2为本申请另一实施例提供的基于云端的用户输入方法的流程示意图;
图3为本申请另一实施例提供的基于云端的用户输入方法的流程示意图;
图4为本申请一实施例提供的基于云端的用户输入装置的结构示意图;
图5为本申请另一实施例提供的基于云端的用户输入装置的结构示意图;
图6为本申请一实施例提供的基于云端的用户输入设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。
通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
另外,本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
在本公开其中一种实施例中的基于云端的用户输入方法可以运行于服务器。当基于云端的用户输入方法运行于服务器时,该方法则可以基于云交互系统来实现与执行,其中,云交互系统包括服务器和终端设备,终端设备上安装有客户端。
在一可选的实施方式中,云交互系统下可以运行各种云应用,例如:云游戏。以云游戏为例,云游戏是指以云计算为基础的游戏方式。在云游戏的运行模式下,游戏程序的运行主体和游戏画面呈现主体是分离的,基于云端的用户输入方法的储存与运行是在云游戏服务器上完成的,客户端用于数据的接收、发送以及游戏画面的呈现,举例而言,客户端可以安装运行于靠近用户侧的具有数据传输功能的显示设备,如,移动终端、电视机、计算机、掌上电脑等,进行信息处理的设备可以为云端的云游戏服务器。在进行游戏时,玩家操作客户端向云游戏服务器发送操作指令,云游戏服务器根据操作指令运行游戏,将游戏画面等数据进行编码压缩,通过网络返回客户端,最后,通过客户端进行解码并输出游戏画面。
为方便对本申请实施例的理解,下述对本申请涉及的部分名词进行解释:
镜像:镜像即镜像服务器。镜像服务器与主服务器的服务内容都是一样的,只是放在一个不同的地方,分担主服务器的负载量。可以使用,但不是原版的。在网上内容完全相同而且同步更新的两个或多个服务器,除主服务器外,其余的都被称为镜像服务器。镜像是冗余的一种类型,一个磁盘上的数据在另一个磁盘上存在一个完全相同的副本即为镜像。
Android应用程序包(Android application package,APK):是Android操作系统使用的一种应用程序包文件格式,用于分发和安装移动应用及中间件。一个Android应用程序的代码想要在Android设备上运行,必须先进行编译,然后被打包成为一个被Android系统所能识别的文件才可以被运行,而这种能被Android系统识别并运行的文件格式便是APK。
容器技术:有效的将单个操作系统的资源划分到孤立的组中,以便更好的在孤立的组之间平衡有冲突的资源使用需求,这种技术就是容器技术。
如下结合多个具体的应用示例,对本申请实施例所提供的一种基于云端的用户输入方法进行解释说明。图1为本申请一实施例提供的一种基于云端的用户输入方法的流程示意图,以服务器为执行主体进行说明,如图1所示,该方法包括:
S101:将预设云端输入法部署至服务器。
在本申请的一个实施例中,服务器例如可以为云端服务器,预先在服务器系统的镜像中预安装预设云端输入法数据的方式例如可以为:使用adb install<path_to_apk>命令预先在服务器系统的镜像中预安装部署预设云端输入法,随后通过ime enable<your.ime.service>命令使得部署的预设云端输入法可用,最后通过ime set<your.ime.service>对预设云端输入法进行设置。但是这种部署方式主要是在开发测试中使用,由于线上的云端实例较多,每个实例都单独安装的方式非常耗时,因此在本申请的一个实施例中,可以把预先部署的输入法数据预安装在镜像中,从而提高每个实例的安装效率,降低安装耗时,并且保证每个实例在安装时,均会同步安装预设云端输入法,即保证各实例下的云端输入法的统一问题。
在一些可能的实施例中,预设云端输入法的部署方式例如可以为:将预设云端输入法预安装至服务器系统的镜像中;根据服务器系统的镜像中预安装的预设云端输入法,在各云端容器中安装对应的预设云端输入法。其中,云端服务器的每个云端容器中均安装有预设云端输入法。
其中,各云端容器安装对应的预设云端输入法时,例如可以是在每个云端容器初次启动的时候安装对应的预设云端输入法,也可以是在服务器系统的镜像预安装了预设云端输入法后,直接根据服务器系统的镜像中预安装的预设云端输入法,在各云端容器内安装对应的预设云端输入法;具体各云端容器安装预设云端输入法的时机可以根据用户需要灵活调整,并不以上述实施例给出的为限。
在另一些可能的实施例中,在服务器系统的镜像中预设云端输入法发生更新,或变动时,各云端容器会根据变动后的预设云端输入法,对安装在云端容器中的预设云端输入法进行调整,调整后的预设云端输入法与服务器系统的镜像中变动后的预设云端输入法保持一致。
示例地,在本申请的一个实施例中,在服务器系统中预安装预设云端输入法的方式例如可以为将预设云端输入法的文件添加至服务器系统的镜像的编译文件夹中;采用预设编译方式重新对编译文件中的编译源码进行编码,其具体预安装的步骤如下:
1)在服务器系统的镜像中的packages/apps/<folder_name>中新建文件夹。
2)将预先部署的预设云端输入法的apk文件放入步骤1中的新建文件夹中。
3)在步骤1中的新建文件夹中创建预设云端输入法对应的编译源码Android.mk文件,并在编译源码文件中填写预设云端输入法的apk的相关信息。
4)修改服务器系统的镜像中的编译文件build/target/product/core.mk,在编译文件夹中添加步骤2和步骤3中新增的预设云端输入法apk文件和Android.mk文件的文件名称。
5)根据修改后的编译文件夹,重新对编译文件夹中的编译源码进行编译。
S102:响应于接收到客户端发送的输入操作的触发操作,调用预设云端输入法。
在本申请的实施例中,在需要输入法的游戏场景中,客户端可以通过在游戏界面内拉起云端预设的预设云端输入法对应的预设输入窗口,从而触发向客户端发送输入操作的触发操作;例如客户端可以通过点击图形用户界面中的预设对话控件,或通过预设拉起快捷键的触发,触发拉起云端预设的预设云端输入法对应的预设输入窗口。
示例地,在本申请的实施例中,服务器中还会预先部署针对输入操作的拉起逻辑,默认服务器中的各云端容器在需要拉起输入法时,拉起的输入法均为预先部署的预设云端输入法,因此在服务器接收到客户端发送的输入操作的触发操作后,会直接在对应的云端容器中,根据预先部署的拉起逻辑,直接拉起并调用预设云端输入法,从而保证了在接收到输入操作的触发操作之后,调用的均是预设云端输入法,而不是客户端的终端设备对应的输入法,保证了即使是采用不同终端设备的客户端,在进行输入法的调用时,调用的均为预设云端输入法,保证了服务器中的各容器调用的输入法的统一性,避免了调用无法保证不同终端设备对应的输入法的兼容性无法保证的问题。
S103:根据预设云端输入法的界面内容编码生成包括预设云端输入法的视频流数据。
在本申请的一个实施例中,生成包括预设云端输入法的图形用户界面的方式例如可以为:响应于接收到的输入操作的触发操作,获取当前客户端中图形用户界面中的显示内容;对调用的预设云端输入法和图形用户界面的显示内容进行编码处理,生成包括预设云端输入法的视频流数据。
S104:将视频流数据发送至客户端,以在客户端上显示包括云端输入法的界面内容的视频画面。
对应地,客户端在获取到服务器发送的包括预设云端输入法的视频流数据后,需要对经过编码处理的包含预设云端输入法的视频流数据进行解码,并根据解码后的数据进行渲染,随后在客户端上显示包括预设云端输入法对应的预设输入窗口的视频流数据。
其中,由于预设输入窗口与游戏界面处于云端的同一界面内,所以云端服务器抓取的屏幕内容包含了预设云端输入法和游戏界面,并在经过编码生成视频流数据后一起传输给客户端。客户端在获取到编码后的视频流数据后,对编码后的视频流数据进行解码渲染,并在图形用户界面上显示渲染后的包括预设云端输入法对应的预设输入窗口的游戏界面,用户就能看到云端游戏界面和预设云端输入法对应的预设输入窗口,因此客户端不再需要弹出本地键盘,而是直接显示云端服务器预先部署的预设云端输入法对应的预设输入窗口,即预设云端输入法对应的预设虚拟键盘。
其中,预设云端输入法对应的预设输入窗口可以在图形用户界面中的焦点位置。
采用本申请提供的基于云端的用户输入方法,由于服务器上预先部署了预设云端输入法,因此在服务器接收到客户端发送的输入操作的触发操作时,会调用预设云端输入法,并根据预设云端输入法和客户端的显示内容生成包括预设云端输入法的视频流数据,并将生成的包括预设输入法的视频流数据发送至客户端,这样的输入方法由于是直接将预设云端输入法部署在服务器上的,而不是直接使用各客户端的本地输入法,所以克服了客户端本身由于设备不同,造成在客户端的图形用户界面中在显示不同云端输入法时兼容性的问题,即采用本申请提供的方法,在确定包括预设云端输入法的图形用户界面时无需考虑兼容性问题,不但提高了用户的使用感受,并且提高了开发时间,提升了开发效率。
可选地,在上述实施例的基础上,本申请实施例还可提供一种基于云端的用户输入方法,如下结合附图对上述方法中显示预设输入窗口的实现过程进行示例说明。图2为本申请另一实施例提供的一种基于云端的用户输入方法的流程示意图,如图2所示,S102可包括:
S105:响应于接收到的输入操作的触发操作,确定输入操作对应的输入设备的设备类型。
其中,输入设备的设备类型例如可以包括:终端设备、外接设备中的任一种;即当前输入设备例如可以为终端设备的显示屏时,玩家可以通过触摸终端设备的显示屏的方式实现输入操作的输入,外接设备例如还可以为外接触摸屏、外接鼠标、外接手柄、外接遥控器或外接键盘等,玩家可以通过外接设备实现输入操作的触发操作,应当理解上述实施例仅为示例性说明,具体外接设备包括的类型可以根据用户需要灵活调整,并不以上述实施例给出的为限。
S106:根据输入设备的设备类型,在对应的云端容器中调用输入设备的设备类型对应的预设类型的云端输入法。
在本申请的一个实施例中,在需要输入法的游戏场景中,服务器需要预先获取客户端发送的当前输入设备的设备类型,随后服务器根据不同的输入设备的设备类型,切换云端输入法为当前设备类型对应的预设云端输入法,不同的设备类型可能对应不同的预设云端输入法。
其中,例如在服务器系统的镜像中可以预先安装有多种设备类型对应的预设云端输入法,随后在使用过程中,就可以在确定当前输入设备的设备类型后,直接根据不同的输入设备的设备类型,直接调用当前设备类型对应的预设云端输入法。
在一些可能的实施例中,在外接设备初始接入客户端时,客户端就会将当前接入的外接设备的设备类型发送至服务器,以便服务器直接根据外接设备的类型确定其对应的预设云端输入法;若在游戏过程中外接设备发生了变更,例如检测到外接设备移出后重新接入,则在检测到新的外接设备接入时,客户端就在此将新接入的外接设备的设备类型发送至服务器,从而实现外接设备类型更新的同步。
在另一些可能的实施例中,也可以为在输入操作被触发时,客户端再获取当前外接设备的设备类型,并将获取的当前外接设备的设备类型发送至服务器,以便服务器根据当前外接设备的设备类型确定其对应的预设输入窗口,应当理解上述实施例仅为示例性说明,具体发送外接设备的设备类型的时机和方式均可以根据用户需要灵活调整,并不以上述实施例给出的为限。
可选地,在上述实施例的基础上,本申请实施例还可提供一种基于云端的用户输入方法,如下结合附图对上述方法中显示预设输入窗口的实现过程进行示例说明。图3为本申请另一实施例提供的一种基于云端的用户输入方法的流程示意图,如图3所示,该方法还可包括:
S107:获取客户端基于预设云端输入法的图形用户界面发送的输入操作数据。
在一些可能的实施例中,例如可以获取客户端基于预设云端输入法的图形用户界面发送的序列化后的输入操作数据,序列化的方式例如可以为ProtoBuf,从而通过序列化的方式提高效率,降低输入操作数据的空间占用,并且提高输入操作数据的处理速度,客户端在对输入操作数据序列化后,可以直接将序列化后的输入操作数据直接发送至服务器。
在本申请的一个实施例中,在向客户端发送包含有预设云端输入法的图形用户界面后,客户端会实时监听玩家的输入操作数据,比如玩家触摸了客户端显示屏幕的某处,或客户端监听到玩家通过外接鼠标点击了客户端显示屏幕的某处,则客户端将监听到的输入操作数据传递给云端服务器,以使得云端服务器根据接收到的输入操作数据获取输入操作数据对应的输入指令。
在一些可能的实施例中,客户端会以KeyEvent的格式封装当前玩家的输入操作数据,其中,对输入操作数据进行封装,是为了后续的序列化做准备。
S108:根据输入操作数据,确定输入操作数据对应的输出内容。
对应的,服务器在获取到序列化后的输入操作数据后,可以对序列化后的输入操作数据进行反序列化,确定输入操作数据对应的输出内容。
通过序列化和反序列化的设置,不但降低了输入操作数据的空间占用,提高输入操作数据的处理速度,并且保证了输入操作数据的准确传输,保证了根据输入操作数据得到的输入指令对应的输出内容的准确性。
在本申请的一个实施例中,云端服务器在获取到客户端发送的输入操作后,将获取到的输入操作注入至云端内的识别处理系统中,识别处理系统根据当前外接设备对应的预设云端输入法,以及该预设云端输入法对应的处理方式对获取的输入操作进行处理,并获取输入操作对应的输出内容,随后将获取的输出内容发送至客户端,至此完成对玩家输入操作进行处理的过程。
在一些可能的实施例中,输入操作注入的方式例如可以为使用安卓(Android)的插桩(Instrumentation)对象,通过其中送(send())开头的方法发送注入指令,其中send()是send开头的一系列函数,举例说明比如sendStringSync是发送文本指令,sendKeySync是发送按键指令。
在本申请的另一些可能的实施例中,输入操作注入的方式例如可以为Android系统基于Linux,可以直接把指令注入到/dev/input/eventX;其中,/dev是Linux操作系统下的一个目录,用于储存硬件设备信息,通过其下的目录可以直接访问硬件;input为一个目录,存储的是输入设备文件;eventX存储的是事件队列文件,X是一个整数,表示第几个事件队列,比如event0,event1,把输入指令写入事件队列文件实现指令注入;应当理解上述实施例仅为示例性说明,具体注入方式可以根据用户需要灵活调整,并不以上述实施例给出的为限。
在本申请的一个实施例中,由于预设输入窗口为当前图形用户界面中的焦点界面,因此只需把输入指令注入至系统,系统就会优先根据当前外接设备对应的输入法,以及输入法对应的处理方式对输入操作进行处理,也即对输入操作进行处理的优先级时当前图形用户界面中,处理优先级最高的事件。
S108:向客户端发送根据输入操作数据生成的输出内容。
示例地,在一些可能的实施例中,S101之前,还需要通过与服务器建立的连接向服务器发送当前输入设备的设备类型,以使得服务器根据当前输入设备的设备类型,确定当前输入设备对应的预设输入窗口,其中,本申请支持更多的外接设备作为游戏的输入设备,不同的输入设备可能对应不同的输入窗口,不同的输入窗口可能对应不同的交互方式。
在本申请的一个实施例中,表1即为本申请一实施例提供的不同的外接设备与交互方式之间的对应关系。
Figure BDA0003352808050000181
表1
如表1所示,外接设备为触摸屏或鼠标时,只需在图形用户界面上显示预设虚拟键盘即可,并可以直接通过用户在触摸屏上的通过手指的点击操作,或用户在图形用户界面上通过鼠标的点击操作实现输入操作数据的输入,其中,触摸屏例如可以为外接设备的触摸屏,或终端设备本身的显示触摸屏;外接设备为手柄或遥控器时,可以在图形用户界面上提供虚拟键盘,随后玩家通过移动手柄或遥控器上方向键,移动光标所在位置,并将光标停留在待选中的目标键位的位置处,随后通过确认键或预设键,例如A键,确认选中目标键位,即确认目标键位的输入;外接设备为键盘时,由于已有实体键盘,所以可以直接接收实体键盘的按键输入作为输入操作数据,应当理解上述实施例仅为示例性说明,具体外接设备还可以包括其他类型的外接设备,只需匹配对应的交互方式即可,可以根据用户需要灵活调整,并不以上述实施例给出的为限。
示例地,在本申请的另一实施例中,服务器除了可以根据外接设备的不同,确定不同的预设输入窗口,还可以基于当前游戏,在输入窗口为玩家提供当前游戏对应的相关游戏词库,或与当前游戏相关的游戏快捷语和表情包等,应当理解上述实施例仅为示例性说明,具体输入窗口中包括的内容可以根据用户需要灵活调整,并不以上述实施例给出的为限。
在本申请提供的实施例中,预设输入法窗口和交互实现主要是重写输入法服务(Input Method Service),在创建输入视图时(on Create Input View)在图形用户界面中展示预先创建设计好的窗口,并在向下按键(on Key Down)和按键弹起(on Key Up)中处理按键的输入操作,应当理解上述实施例仅为示例性说明,具体可以根据用户需要灵活调整,并不以上述实施例给出的为限。
在本申请的一个实施例中,在云游戏运行之前,客户端与云端服务器之间需要建立长连接,该长连接用于客户端和云端服务器交换信息或交换数据、协商云游戏运行配置等信息,以及通过该长连接告知云端玩家的外接设备类型信息等数据;例如服务器需要通过与客户端建立的连接,获取客户端发送的当前输入设备的设备类型;或服务器通过与客户端建立的连接,获取客户端基于预设云端输入法的图形用户界面发送的序列化后的输入操作数据等。具体地,云端服务器向客户端发送数据也可以通过长连接发送。
预先建立连接的方式例如可以为:客户端向服务器发送长连接建立请求;服务器响应于接收到的客户端发送的长连接建立请求,向客户端发送长连接建立请求对应的建立响应,客户端在接收到服务器根据长连接建立请求反馈的建立响应后,完成与服务器之间的长连接建立;长连接的建立避免了其他数据的传输带来的影响,保证了指令传输的低时延性,在一些可能的实施例中,长连接例如可以为基于传输控制协议(TransmissionControl Protocol,TCP)建立的长连接,应当理解上述实施例仅为示例性,具体长连接的建立方式和建立形式均可以根据用户需要灵活调整,并不以上述实施例给出的为限。
采用本申请提供的基于云端的用户输入方法,由于服务器上预先部署了预设云端输入法,因此在服务器接收到客户端发送的输入操作的触发操作时,会调用预设云端输入法并生成包括预设云端输入法的图形用户界面,并将生成的包括预设输入法的图形用户界面发送至客户端,以使客户端在图形用户界面上显示预设输入法对应的预设输入窗口,其中预设云端输入法是根据当前输入设备的设备类型确定的,不同的设备类型可能对应不同的预设云端输入法;在确定预设云端输入法对应的预设输入窗口后,客户端将获取的预设输入窗口上的输入操作数据发送至服务器,随后根据服务器发送的输入指令对应的输出内容,在预设输入窗口上显示输入指令对应的输出内容,这样的输入方法由于输入窗口是云端服务器根据不同的输入设备预先配置的,而不是直接弹出的本地输入窗口,所以克服了不同的设备的本地输入窗口不同带来的兼容性的问题,避免了客户端监听输入法导致的兼容性的问题,无需实现用户输入功能无需考虑兼容性问题,不但提高了用户的使用感受,并且提高了开发时间,提升了开发效率;此外本申请还可以基于当前游玩的游戏,提供相关的游戏词库、快捷语和表情包等,进一步方便和丰富了玩家在游戏过程中的输入,提高了玩家交流过程中的趣味性和便捷性。
下述结合附图对本申请所提供的基于云端的用户输入装置进行解释说明,该基于云端的用户输入装置可执行上述图1-图3任一基于云端的用户输入方法,其具体实现以及有益效果参照上述,如下不再赘述。
图4为本申请一实施例提供的基于云端的用户输入装置的结构示意图,如图4所示,该装置应用于服务器,该装置包括:部署模块201、调用模块202、生成模块203和发送模块204,其中:
部署模块201,用于将预设云端输入法部署至服务器;
调用模块202,用于响应于接收到客户端发送的输入操作的触发操作,调用预设云端输入法;
生成模块203,用于根据预设云端输入法的界面显示内容编码生成包括预设云端输入法的视频流数据;
发送模块204,用于将视频流数据发送至客户端,以在客户端上显示包括云端输入法的界面内容的视频画面。
可选地,在上述实施例的基础上,本申请实施例还可提供一种基于云端的用户输入装置,如下结合附图对上述图4给出的装置的实现过程进行示例说明。图5为本申请另一实施例提供的基于云端的用户输入装置的结构示意图,如图5所示,该装置还包括:安装模块205,用于将预设云端输入法预安装至服务器系统的镜像中;根据服务器系统的镜像中预安装的预设云端输入法,在各云端容器中安装对应的预设云端输入法。
如图5所示,该装置还包括:添加模块206和编译模块207,其中:
添加模块206,用于将预设云端输入法的文件添加至服务器系统的镜像的编译文件夹中;
编译模块207,用于采用预设编译方式重新编译编译文件夹中的编译源码。
可选地,调用模块202,具体用于响应于接收到客户端发送的输入操作的触发操作,在对应的云端容器中调用预设云端输入法。
如图5所示,该装置还包括:确定模块208,用于响应于接收到的输入操作的触发操作,确定输入操作对应的输入设备的设备类型;输入设备的设备类型包括:客户端对应的终端设备、外部设备中的任一种;
调用模块202,具体用于根据输入设备的设备类型,在对应的云端容器中调用输入设备的设备类型对应的预设类型的云端输入法,生成显示包括预设类型的云端输入法的图形用户界面。
如图5所示,该装置还包括:获取模块209,用于通过与客户端建立的连接,获取客户端发送的当前输入设备的设备类型。
可选地,获取模块209,具体用于获取客户端基于预设云端输入法的图形用户界面发送的输入操作数据;
确定模块208,具体用于根据输入操作数据,确定输入操作数据对应的输出内容;
生成模块203,具体用于向客户端发送根据输入操作数据生成的输出内容。
可选地,获取模块209,具体用于通过与客户端建立的连接,获取客户端发送的序列化后的输入操作数据。
可选地,确定模块208,具体用于对序列化后的输入操作数据进行反序列化,确定输入操作数据对应的输出内容。
可选地,发送模块204,具体用于响应于接收到的客户端发送的长连接建立请求,向客户端发送长连接建立请求对应的建立响应。
上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器,或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
图6为本申请一实施例提供的基于云端的用户输入设备的结构示意图,该基于云端的用户输入设备可以集成于终端设备或者终端设备的芯片。
如图6所示,该基于云端的用户输入设备包括:处理器501、存储介质502和总线503。
处理器501用于存储程序,处理器501调用存储介质502存储的程序,以执行上述图1-图3对应的方法实施例。具体实现方式和技术效果类似,这里不再赘述。
可选地,本申请还提供一种程序产品,例如存储介质,该存储介质上存储有计算机程序,包括程序,该程序在被处理器运行时执行上述方法对应的实施例。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

Claims (13)

1.一种基于云端的用户输入方法,其特征在于,应用于服务器,所述方法包括:
将预设云端输入法部署至所述服务器;
响应于接收到客户端发送的输入操作的触发操作,调用所述预设云端输入法;
根据所述预设云端输入法的界面内容编码生成包括预设云端输入法的视频流数据;
将所述视频流数据发送至所述客户端,以在所述客户端上显示包括所述云端输入法的界面内容的视频画面。
2.如权利要求1所述的方法,其特征在于,所述将预设云端输入法部署至所述服务器,包括:
将预设云端输入法预安装至服务器系统的镜像中;
根据所述服务器系统的镜像中预安装的预设云端输入法,在各云端容器中安装对应的预设云端输入法。
3.如权利要求2所述的方法,其特征在于,所述将预设云端输入法预安装至服务器系统的镜像中,包括:
将所述预设云端输入法的文件添加至所述服务器系统的镜像的编译文件夹中;
采用预设编译方式重新编译所述编译文件夹中的编译源码。
4.如权利要求2所述的方法,其特征在于,响应于接收到客户端发送的输入操作的触发操作,调用所述预设云端输入法,包括:
响应于接收到客户端发送的输入操作的触发操作,在对应的云端容器中调用所述预设云端输入法。
5.如权利要求2所述的方法,其特征在于,所述响应于接收到客户端发送的输入操作的触发操作,调用所述预设云端输入法,包括:
响应于接收到的客户端发送的输入操作的触发操作,确定所述输入操作对应的输入设备的设备类型;所述输入设备的设备类型包括:所述客户端对应的终端设备、外部设备中的任一种;
根据所述输入设备的设备类型,在对应的云端容器中调用所述输入设备的设备类型对应的预设类型的云端输入法。
6.如权利要求5所述的方法,其特征在于,所述确定所述输入操作对应的输入设备的类型,包括:
通过与所述客户端建立的连接,获取所述客户端发送的当前输入设备的设备类型。
7.如权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述客户端基于包括所述预设云端输入法的图形用户界面发送的输入操作数据;
根据所述输入操作数据,确定所述输入操作数据对应的输出内容;
向所述客户端发送根据所述输入操作数据生成的输出内容。
8.如权利要求7所述的方法,其特征在于,所述获取所述客户端基于包括所述预设云端输入法的图形用户界面发送的输入操作数据,包括:
获取所述客户端基于包括所述预设云端输入法的图形用户界面发送的序列化后的输入操作数据。
9.如权利要求8所述的方法,其特征在于,所述根据所述输入操作数据,确定所述输入操作数据对应的输出内容,包括:
对所述序列化后的输入操作数据进行反序列化,确定所述输入操作数据对应的输出内容。
10.如权利要求1所述的方法,其特征在于,所述方法还包括:
响应于接收到的客户端发送的长连接建立请求,向所述客户端发送所述长连接建立请求对应的建立响应。
11.一种基于云端的用户输入装置,其特征在于,应用于服务器,所述装置包括:部署模块、调用模块、生成模块和发送模块,其中:
所述部署模块,用于将预设云端输入法部署至所述服务器;
所述调用模块,用于响应于接收到客户端发送的输入操作的触发操作,调用所述预设云端输入法;
所述生成模块,用于根据所述预设云端输入法的界面内容编码生成包括预设云端输入法的视频流数据;
所述发送模块,用于将所述视频流数据发送至所述客户端,以在所述客户端上显示包括所述云端输入法的界面内容的视频画面。
12.一种基于云端的用户输入设备,其特征在于,所述设备包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当所述基于云端的用户输入设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行上述权利要求1-10任一项所述的方法。
13.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述权利要求1-10任一项所述的方法。
CN202111342918.0A 2021-11-12 2021-11-12 基于云端的用户输入方法、装置、设备及存储介质 Pending CN114028801A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111342918.0A CN114028801A (zh) 2021-11-12 2021-11-12 基于云端的用户输入方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111342918.0A CN114028801A (zh) 2021-11-12 2021-11-12 基于云端的用户输入方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN114028801A true CN114028801A (zh) 2022-02-11

Family

ID=80137571

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111342918.0A Pending CN114028801A (zh) 2021-11-12 2021-11-12 基于云端的用户输入方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN114028801A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114546242A (zh) * 2022-02-25 2022-05-27 阿里巴巴(中国)有限公司 用于云办公系统的虚拟键盘的控制方法和系统
CN118426602A (zh) * 2024-07-03 2024-08-02 海马云(天津)信息技术有限公司 输入法同步方法与装置、电子设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114546242A (zh) * 2022-02-25 2022-05-27 阿里巴巴(中国)有限公司 用于云办公系统的虚拟键盘的控制方法和系统
CN118426602A (zh) * 2024-07-03 2024-08-02 海马云(天津)信息技术有限公司 输入法同步方法与装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN111433743B (zh) 一种app远程控制方法及相关设备
US10901761B2 (en) Multi-process model for cross-platform applications
WO2020221056A1 (zh) 图像绘制的方法、装置、电子设备及计算机存储介质
US9830176B2 (en) Methods, systems, and media for binary compatible graphics support in mobile operating systems
EP2622463B1 (en) Instant remote rendering
US8872835B2 (en) Prevention of DoS attack by a rogue graphics application
JP2013542515A (ja) 異環境間リダイレクション
WO2012044828A2 (en) User interaction support across cross-environment applications
KR20140065837A (ko) 소프트웨어 가상화를 이용하여 소프트웨어 서비스를 제공하기 위한 장치, 시스템 및 그 방법
CN110968395B (zh) 一种在模拟器中处理渲染指令的方法及移动终端
JP2010521034A (ja) オペレーティングシステムからオペレーティング環境を抽象化する方法
US20160077850A1 (en) Methods, systems, and media for binary compatibility
CN111722885B (zh) 程序运行方法、装置以及电子设备
EP4119207A1 (en) Vibration control method and apparatus, and electronic device and computer-readable storage medium
Oh et al. FLUID: Flexible user interface distribution for ubiquitous multi-device interaction
CN109656646B (zh) 一种远程桌面控制方法、装置、设备及虚拟化芯片
Xu et al. Uiwear: Easily adapting user interfaces for wearable devices
WO2018236691A1 (en) SYSTEMS AND METHODS FOR PERFORMING SOFTWARE APPLICATIONS ON DISTRIBUTED APPLICATION DEVELOPMENT ENVIRONMENTS
CN115065684A (zh) 数据处理方法、装置、设备以及介质
CN112154417B (zh) 经由仿真网络通信信道在应用的单机版本和基于Web的版本之间共享代码库
CN118295760A (zh) 一种多皮肤客户端的显示方法、系统和存储介质
CN113420268B (zh) 水印添加方法、装置、设备及存储介质
CN114028801A (zh) 基于云端的用户输入方法、装置、设备及存储介质
CN104102536A (zh) 一种数据的展示方法和系统
KR101316677B1 (ko) 사용자 인터페이스 가상화에 의한 어플리케이션 서비스 시스템 및 방법

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