CN112316417B - 控制设备连接方法、装置、设备及计算机可读存储介质 - Google Patents
控制设备连接方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN112316417B CN112316417B CN202011225652.7A CN202011225652A CN112316417B CN 112316417 B CN112316417 B CN 112316417B CN 202011225652 A CN202011225652 A CN 202011225652A CN 112316417 B CN112316417 B CN 112316417B
- Authority
- CN
- China
- Prior art keywords
- control
- equipment
- terminal
- interface
- input
- 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.)
- Active
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/40—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
- A63F13/24—Constructional details thereof, e.g. game controllers with detachable joystick handles
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请提供了一种控制设备连接方法、装置、设备及计算机可读存储介质,涉及云技术领域,所述方法包括:获取连接于终端设备的至少一个输入设备中每一输入设备的设备信息;根据每一输入设备的设备信息,从至少一个输入设备中确定至少一个控制设备;为每一控制设备创建对应的控制进程;控制进程用于在控制设备与终端设备的目标应用程序之间传递设备控制数据;目标应用程序在运行过程中用于执行以下过程的至少之一:解析设备控制数据得到目标应用程序能够识别的终端控制事件;将终端控制事件封装为控制设备能够识别的设备控制数据。通过本申请提供的控制设备连接方法,能够提升控制设备的连接效率。
Description
技术领域
本申请涉及云技术领域,尤其涉及一种控制设备连接方法、装置、设备及计算机可读存储介质。
背景技术
随着互联网技术的发展,云游戏(Cloud gaming)受到了广泛关注;所谓的云游戏又可称为游戏点播(gaming on demand),是一种以云计算为基础的游戏方式,此处的云计算是一种基于互联网的计算方式。云游戏技术使图形处理与数据运算能力相对有限的终端设备能运行高品质游戏。在云游戏场景下,游戏并不在玩家用户的包括游戏客户端的终端设备,而是在云端服务器中运行;由云端服务器将游戏场景渲染为视频音频流,通过网络传输给玩家用户的游戏客户端进行播放。玩家用户的游戏客户端无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力以及获取并发送玩家用户的输入指令至云端服务器的能力即可。
为了提高用户对云游戏的游戏体验,往往需要使用游戏专用的控制设备进行控制指令的输入,为了满足不同的游戏体验,控制设备提供的功能也多种多样。相关技术中,需要用户输入特定的切换指令完成控制设备中功能的切换,不仅会出现误操作的现象,而且输入切换指令的过程较繁琐,严重影响用户体验。
发明内容
本申请实施例提供一种控制设备连接方法、装置、设备及计算机可读存储介质,能够提升设备连接效率。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种控制设备连接方法,包括:获取连接于终端设备的至少一个输入设备中每一输入设备的设备信息;根据每一输入设备的设备信息,从至少一个输入设备中确定至少一个控制设备;为每一控制设备创建对应的控制进程;控制进程用于在控制设备与终端设备的目标应用程序之间传递设备控制数据;目标应用程序在运行过程中用于执行以下过程的至少之一:解析设备控制数据得到目标应用程序能够识别的终端控制事件;将终端控制事件封装为控制设备能够识别的设备控制数据。
在本申请的一些实施例中,所述获取连接于终端设备的至少一个输入设备的设备信息,包括:响应于触发指令,获取连接于终端设备的至少一个输入设备中每一输入设备的设备信息;触发指令包括以下至少之一:通过定时触发装置所产生的定时触发指令;输入设备接入终端设备时产生的接入触发指令。
在本申请的一些实施例中,所述获取连接于终端设备的至少一个输入设备中每一输入设备的设备信息,包括:枚举总线中所有硬件设备,以得到当前接入设备信息;对比当前接入设备信息与历史接入设备信息,将至少一个新接入的硬件设备确定为至少一个输入设备;通过总线获取每一输入设备的设备信息。
在本申请的一些实施例中,所述根据每一输入设备的设备信息,从至少一个输入设备中确定至少一个控制设备,包括:根据每一输入设备的设备信息,获取每一输入设备的接口信息;接口信息包括输入设备中每一接口的接口类型;基于每一输入设备的接口信息,将接口信息满足预设的接口要求的输入设备确定为控制设备;接口要求为存在至少一个接口类型为人机接口设备HID类型的接口。
在本申请的一些实施例中,所述基于每一输入设备的接口信息,将接口信息满足预设的接口要求的输入设备确定为控制设备,包括:基于每一输入设备的接口信息,将接口信息满足接口要求的输入设备确定为待确定控制设备;获取待确定控制设备中接口类型为HID类型的接口的端点信息;在端点信息包括读端点和写端点的情况下,将待确定控制设备确定为控制设备。
在本申请的一些实施例中,所述方法还包括:通过控制进程在读端点读取控制设备产生的设备控制数据;将设备控制数据发送至目标应用程序;通过应用程序对设备控制数据进行解析,得到终端控制事件;终端控制事件包括以下至少之一:按键事件、摇杆事件和触摸板事件。
在本申请的一些实施例中,所述方法还包括:获取目标应用程序产生的终端响应事件;终端响应事件包括以下至少之一:震动事件、显示事件和声音事件;通过目标应用程序对终端响应事件进行封装,得到设备控制数据;通过控制进程在写端点将设备控制数据发送至控制设备,以使控制设备根据设备控制数据进行控制反馈。
在本申请的一些实施例中,所述目标应用程序为连接于云游戏服务器的云游戏客户端,所述云游戏服务器用于运行云游戏,所述方法还包括:通过云游戏客户端将终端控制事件发送至云游戏服务器,以使云游戏服务器根据终端控制事件实时渲染云游戏的游戏画面,并将游戏画面传输至云游戏客户端;通过云游戏客户端接收游戏画面,并进行通过终端设备的显示设备进行显示。
在本申请的一些实施例中,所述目标应用程序为连接于云游戏服务器的云游戏客户端,所述云游戏服务器用于运行云游戏,所述方法还包括:通过云游戏客户端接收云游戏服务器生成的终端控制事件;通过云游戏客户端将服务器生成的终端控制事件封装为控制设备能够识别的设备控制数据。
在本申请的一些实施例中,在为每一控制设备创建对应的控制进程之前,所述方法还包括:在目标应用程序不具备控制设备的使用权限的情况下,发起对于控制设备的申请使用权限的使用请求;通过图形交互界面显示使用请求,并接收用户输入的与使用请求对应的使用响应;在使用响应为请求通过的情况下,为目标应用程序分配使用权限,创建控制设备对应的控制进程。
在本申请的一些实施例中,所述方法还包括:响应于控制设备对应的断开指令,终止控制设备对应的控制进程;断开指令包括以下至少之一:控制设备与终端设备断开连接时产生的断开连接指令,控制设备接收到用户输入的被动断开指令和终端设备通过图形交互界面接收到用户输入的主动断开指令。
本申请实施例提供一种控制设备连接装置,所述装置包括:
获取模块,用于获取连接于终端设备的至少一个输入设备中每一输入设备的设备信息。
确定模块,用于根据每一输入设备的设备信息,从至少一个输入设备中确定至少一个控制设备。
创建模块,用于为每一控制设备创建对应的控制进程;控制进程用于在控制设备与终端设备的目标应用程序之间传递设备控制数据;目标应用程序在运行过程中用于执行以下过程的至少之一:解析设备控制数据得到目标应用程序能够识别的终端控制事件;将终端控制事件封装为控制设备能够识别的设备控制数据。
本申请实施例提供一种控制设备连接设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的控制设备连接方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的控制设备连接方法。
本申请实施例具有以下有益效果:
本申请实施例通过获取连接于终端设备的每一输入设备的设备信息,并根据每一输入设备的设备信息,从至少一个输入设备中确定至少一个控制设备,不仅可以提升终端设备对控制设备的识别效率,提升了控制设备的连接效率;并且,由于为每一控制设备建立对应的控制进程,通过该控制进程在终端设备中的目标应用程序和控制设备之间传递控制设备可以识别的设备控制数据,可以使得本申请提供的控制设备连接方法可以应用于各种型号的控制设备中;并且,通过目标应用程序完成控制设备可以识别的设备控制数据与目标应用程序可以识别的终端控制事件之间的转换,可以使得终端设备可以兼容各种控制设备,提升了本申请控制设备连接的兼容性;并且,由于目标应用程序接收的是原始的设备控制数据,解析过程由目标应用程序来完成,由此,用户无需在控制设备输入特定的切换指令,目标应用程序可以根据设备控制数据的不同,自行解析成不同类型的控制事件,进而省去了输入切换指令的过程,不仅避免了误操作情况的发生,还可以提升控制效率,提升用户使用体验。
附图说明
图1是本申请实施例提供的控制设备连接***的一个可选的架构示意图;
图2是本申请实施例提供的控制设备连接设备的结构示意图;
图3是本申请实施例提供的控制设备连接方法的一个可选的流程示意图;
图4是本申请实施例提供的控制设备连接方法的一个可选的流程示意图;
图5是本申请实施例提供的控制设备连接方法的一个可选的流程示意图;
图6是本申请实施例提供的控制设备连接方法的一个可选的流程示意图;
图7是本申请实施例提供的控制设备连接方法的一个可选的流程示意图;
图8是本申请实施例提供的控制设备连接方法的一个可选的流程示意图;
图9是本申请实施例提供的基于蓝牙的控制设备连接方法的一个可选的流程示意图;
图10A是本申请实施例提供的基于USB的控制设备连接方法的一个可选的流程示意图;
图10B是本申请实施例提供的设备信息拓扑示意图;
图10C是本申请实施例提供的权限申请界面示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使在本实施例中描述的本申请实施例能够以除了在在本实施例中图示或描述的以外的顺序实施。
首先,对本申请实施例中涉及的名词进行简单介绍:
云游戏(Clouding Game):是指以云计算为基础的游戏方式,云游戏在运行时,云游戏的逻辑处理、画面渲染均在服务器上进行,服务器将游戏画面对应的视频流和音频流通过网络传送至客户端,用户只需要拥有具有被流媒体播放功能的设备和可获取控制操作的设备即可进行游戏,云计算是指一种分布式计算,通过多部服务器组成的***对大量的数据在短时间内进行处理,并且向用户反馈计算结果。
游戏控制器:游戏控制器是在游戏或者娱乐***中,为电子游戏提供输入的设备。游戏控制器通常的输入也被有按键、手柄、操作杆和触摸板等。驾驶游戏的方向盘,以及射击游戏的光线枪这类专用设备,也是游戏控制器。
标准游戏手柄:游戏控制器的一种。常见的手柄(下面称为标准手柄),由肩键(LT/LB/RT/RB)、十字键(上下左右)、左右摇杆和其他功能键(START/BACK等)组成。
非标准游戏手柄(定制手柄、扩展手柄,以下称为非标准手柄):在标准游戏手柄的基础上扩展了功能,比如增加了触摸板,麦克风等。
通用属性配置文件(GATT):GATT配置文件是一种通用规范,内容针对在蓝牙链路上发送和接收称为“属性”的简短数据片段。目前所有低功耗应用配置文件均以GATT为基础。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
参见图1,图1是本申请实施例提供的控制设备连接***100的一个可选的架构示意图,为实现支撑一个控制设备连接应用,终端(示例性示出了终端400-1和终端400-2)通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合。图1还示出了服务器200可以为服务器集群,该服务器集群包括服务器200-1至200-3,同样地,服务器200-1至200-3可以是实体机器,也可以是利用虚拟化技术(如容器技术及虚拟机技术等)构建的虚拟机器,本申请实施例对此不做限定,当然,在本实施例中也可使用单个服务器来进行服务的提供。其中,该终端可以为:智能电视,机顶盒,智能手机、平板电脑、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。该终端还可能被称为用户计算机设备、便携式计算机设备、膝上型计算机设备、台式计算机设备等其他名称。
在本申请的一些实施例中,终端设置有不同类型的硬件接口,该硬件接口可以用于连接输入设备,终端可以通过图形界面(示例性示出了图形界面410-1和图形界面410-2)接收用户对该目标应用程序的启动操作。响应于该启动操作,可以获取连接于终端设备的至少一个输入设备中每一输入设备的设备信息;根据每一输入设备的设备信息,从至少一个输入设备中确定至少一个控制设备;为每一控制设备创建对应的控制进程;控制进程用于在控制设备与终端设备的目标应用程序之间传递设备控制数据。
其中,该目标应用程序可以为云游戏客户端,响应于该启动操作,终端可以通过图形界面显示至少一个云游戏选项,在接收到用户对其中一个云游戏选项的选择操作后,终端通过该目标程序向服务器200发送该云游戏选项对应的启动请求,服务器200在接收到该启动请求后,会启动对应的云游戏进程,并将该云游戏进程实时渲染的图像传输至终端,并通过终端的图形界面进行显示。
本申请实施例可以借助于云技术(Cloud Technology)实现,云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、以及应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络***的后台服务需要大量的计算、存储资源,例如,教育***的门户网站。
作为示例,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、以及智能手表等,但并不局限于此。终端以及服务器200可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。
参见图2,图2是本申请实施例提供的控制设备连接设备500的结构示意图,图2所示的控制设备连接设备500包括:至少一个处理器510、存储器550、至少一个网络接口520和用户接口530。控制设备连接设备500中的各个组件通过总线***540耦合在一起。可理解,总线***540用于实现这些组件之间的连接通信。总线***540除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线***540。
处理器510可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口530包括使得能够呈现媒体内容的一个或多个输出装置531,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口530还包括一个或多个输入装置532,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器550包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器550旨在包括任意适合类型的存储器。存储器550可选地包括在物理位置上远离处理器510的一个或多个存储设备。
在本申请的一些实施例中,存储器550能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作***551,包括用于处理各种基本***服务和执行硬件相关任务的***程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块552,用于经由一个或多个(有线或无线)网络接口520到达其他计算设备,示例性的网络接口520包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
显示模块553,用于经由一个或多个与用户接口530相关联的输出装置531(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作***设备和显示内容和信息的用户接口);
输入处理模块554,用于对一个或多个来自一个或多个输入装置532之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在本申请的一些实施例中,本申请实施例提供的控制设备连接装置可以采用软硬件结合的方式实现,作为示例,本申请实施例提供的控制设备连接装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的控制设备连接方法。
在本申请的一些实施例中,本申请实施例提供的控制设备连接装置可以采用软件方式实现,图2示出了存储在存储器550中的控制设备连接装置555,其可以是程序和插件等形式的软件,包括以下软件模块:获取模块5551、确定模块5552和创建模块5553,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。
将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的装置可以采用硬件方式实现,作为示例,本申请实施例提供的装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的控制设备连接方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,ComplexProgrammable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable GateArray)或其他电子元件。
将结合本申请实施例提供的终端的示例性应用和实施,在本申请实施例中,将以终端为执行主体说明本申请实施例提供的控制设备连接方法。
参见图3,图3是本申请实施例提供的控制设备连接方法的一个可选的流程示意图,将结合图3示出的步骤进行说明。
在步骤301中,获取连接于终端设备的至少一个输入设备中每一输入设备的设备信息。
在本申请的一些实施例中,该设备信息用于表征该输入设备的设备类型,其中,该设备类型可以包括:音频类别、CDC控制类别、人机接口设备(HID)类别、物理类别、图像类别、打印机类别、大数据存储类别、集线器类别、CDC数据类别、智能卡类别、安全类别、诊断设备类别、无线控制器类别、特定应用(包括红外的桥接器等)类别和厂商定义的设备类别。
在本申请的一些实施例中,对于连接于终端设备的至少一个输入设备,在每一输入设备与该终端设备通过硬件接口建立连接的过程中,终端设备会为每一输入设备分配总线和端口。在执行上述步骤301的过程中,对于每一输入设备,终端设备可以通过每一输入设备对应的总线和端口访问该输入设备,并得到每一输入设备对应的设备信息。
在本申请的一些实施例中,终端设备可以在输入设备***该终端设备设置的硬件接口时,执行步骤301;还可以在输入设备从该终端设备设置的硬件接口拔出时,执行步骤301;还可以每隔一个预设的时间间隔,执行步骤301。
在步骤302中,根据每一输入设备的设备信息,从至少一个输入设备中确定至少一个控制设备。
在本申请的一些实施例中,该终端设备可以设置预设的标准设备信息,该标准设备信息为控制设备对应的设备信息。通过判断每一输入设备的设备信息是否与该标准设备信息匹配可以从至少一个输入设备中确定控制设备。
在本申请的一些实施例中,在至少一个输入设备中存在至少一个控制设备的情况下,执行步骤303,为该控制设备创建对应的控制进程。在至少一个输入设备中不存在控制设备的情况下,返回执行步骤301。
在步骤303中,为每一控制设备创建对应的控制进程;控制进程用于在控制设备与终端设备的目标应用程序之间传递设备控制数据;目标应用程序在运行过程中用于执行以下过程的至少之一:解析设备控制数据得到目标应用程序能够识别的终端控制事件;将终端控制事件封装为控制设备能够识别的设备控制数据。
在本申请的一些实施例中,该目标应用程序安装于该终端设备中,该控制设备用于对该目标应用程序中的虚拟对象进行控制,其中,该虚拟对象包括但不限于是各种虚拟人物,虚拟光标,虚拟菜单等。
在本申请的一些实施例中,在确定与该终端设备连接的至少一个控制设备后,可以判断各控制设备是否已经存在对应的控制进程,在控制设备不存在对应的控制进程的情况下,为该控制设备创建对应的控制进程。
在本申请的一些实施例中,该控制进程可以用于从控制设备中读取控制设备产生的设备控制数据,并将该设备控制数据传输至目标应用程序。该设备控制数据为控制设备产生的原始数据,目标应用程序在接收到该设备控制数据后,可以对该设备控制数据进行解析,得到目标应用程序能够识别的终端控制事件。
在本申请的一些实施例中,目标应用程序还可以生成终端控制事件,由于控制设备可能无法识别该终端控制事件,因此,该目标用于程序可以对终端控制事件进行封装,得到控制设备可以识别的设备控制数据。该控制进程还用于将目标应用程序封装好的设备控制数据发送至控制设备中。
在本申请的一些实施例中,在执行步骤302,得到该终端设备中存在新的控制设备后,可以判断该目标应用程序的运行状态,在该目标应用程序为运行状态并且处于前台的情况下,不作任何操作,保持该目标应用程序的前台运行;在该目标应用程序为运行状态并且处于后台的情况下,可以将该目标应用程序从后台切换至前台;在该目标应用程序为未运行状态的情况下,通过图形交互界面发出该目标应用程序对应的启动提示,在接收到用户同意启动该目标应用程序的启动反馈后,启动该目标应用程序,并保持该目标应用程序的前台运行,在接收到用户不同意启动该目标应用程序的启动反馈后,启动该目标应用程序,并保持该目标应用程序的后台运行。
在本申请的一些实施例中,目标应用程序为连接于云游戏服务器的云游戏客户端,云游戏服务器用于运行云游戏。
在本申请的一些实施例中,所述方法还包括:通过云游戏客户端将终端控制事件发送至云游戏服务器,以使云游戏服务器根据终端控制事件实时渲染云游戏的游戏画面,并将游戏画面传输至云游戏客户端;通过云游戏客户端接收游戏画面,并进行通过终端设备的显示设备进行显示。
在本申请的一些实施例中,所述方法还包括:通过云游戏客户端接收云游戏服务器生成的终端控制事件;通过云游戏客户端将服务器生成的终端控制事件封装为控制设备能够识别的设备控制数据。
通过本申请实施例对于图3的上述示例性实施可知,本申请实施例通过获取连接于终端设备的每一输入设备的设备信息,并根据每一输入设备的设备信息,从至少一个输入设备中确定至少一个控制设备,不仅可以提升终端设备对控制设备的识别效率,提升了控制设备的连接效率;并且,由于为每一控制设备建立对应的控制进程,通过该控制进程在终端设备中的目标应用程序和控制设备之间传递控制设备可以识别的设备控制数据,可以使得本申请提供的控制设备连接方法可以应用于各种型号的控制设备中;并且,通过目标应用程序完成控制设备可以识别的设备控制数据与目标应用程序可以识别的终端控制事件之间的转换,可以使得终端设备可以兼容各种控制设备,提升了本申请控制设备连接的兼容性;并且,由于目标应用程序接收的是原始的设备控制数据,解析过程由目标应用程序来完成,由此,用户无需在控制设备输入特定的切换指令,目标应用程序可以根据设备控制数据的不同,自行解析成不同类型的控制事件,进而省去了输入切换指令的过程,不仅避免了误操作情况的发生,还可以提升控制效率,提升用户使用体验。
参见图4,图4是本申请实施例提供的控制设备连接方法的一个可选的流程示意图,基于图3,图3中的步骤301可以更新为步骤401,将结合图4示出的步骤进行说明。
在步骤401中,响应于触发指令,获取连接于终端设备的至少一个输入设备中每一输入设备的设备信息;触发指令包括以下至少之一:通过定时触发装置所产生的定时触发指令;输入设备接入终端设备时产生的接入触发指令。
在本申请的一些实施例中,终端设备可以在接收到触发指令后,获取连接于该终端设备的至少一个输入设备中每一设备的设备信息。
其中,该触发指令可以为通过定时触发装置所产生的定时触发指令。终端设备中可以设置一个定时触发装置,该定时触发装置在预设时间到达时,会产生一个定时触发指令,终端设备在接收到该定时触发指令后,执行获取连接于该终端设备的至少一个输入设备中每一设备的设备信息的步骤。例如,该定时触发装置可以设置为每隔3分钟产生一个定时触发指令,设置有该定时触发装置的终端设备每隔3分钟会执行获取连接于该终端设备的至少一个输入设备中每一设备的设备信息的步骤。
其中,该触发指令还可以为输入设备接入终端设备时产生的接入触发指令。输入设备与终端设备可以通过硬件接口实现接入步骤,输入设备在通过硬件接口连接至终端设备的过程中,终端设备可以通过检测对应硬件接口的属性信息,根据属性信息判断该硬件接口是否有输入设备接入。在确定硬件接口有输入设备接入的情况下,产生该接入触发指令,终端设备在接收到该接入触发指令后,执行获取连接于该终端设备的至少一个输入设备中每一设备的设备信息的步骤。例如,在该硬件接口为USB接口的情况下,USB接口中的+5V电源不仅可以提供电流还具备检测功能。当USB输入设备***USB接口后,主机的+5V电源就会通过USB边线与USB设备相通。USB外设的控制芯片会通过两只10K的电阻来检查USB输入设备是否接入了主机的USB端口。如果这两个引脚一个为高电平,一个为低电平,表示USB输入设备已经连入USB接口。
在本申请的一些实施例中,可以通过以下方式实现上述步骤401:步骤4011,枚举总线中所有硬件设备,以得到当前接入设备信息;步骤4012,对比当前接入设备信息与历史接入设备信息,将至少一个新接入的硬件设备确定为至少一个输入设备;步骤4013,通过总线获取每一输入设备的设备信息。
其中,在终端设备接收到上述的触发指令后,可以枚举当前***中所有硬件设备的当前接入设备信息,该当前接入设备信息中可以包含当前***中所有硬件设备的身份标识;然后,将枚举的当前***中所有硬件设备的当前接入设备信息与接收到该触发指令之前的历史接入设备信息进行对比,将至少一个新接入的硬件设备确定为至少一个输入设备。之后,终端设备可以通过描述符信息获取每一输入设备的设备信息,其中,该描述符信息可以包括以下至少之一:设备描述符、配置描述符、端口描述符、端点描述符和字符串描述符。
其中,该历史接入设备信息中包含接收到该触发指令之前***中所有正常运行的硬件设备的设备信息。该历史接入设备信息可由终端设备在每次有输入设备接入终端设备的数据传输接口并正常运行时,或有输入设备被从该数据传输接口拔出时,自动记录。该硬件设备的身份标识可以是硬件设备中携带的用来将该硬件设备与其他硬件设备进行区别的识别信息,具有唯一性。于本实施例中,硬件设备的身份标识可以包括:硬件设备的生产商的编号(Vendor ID,VID)以及生产商内部的产品编号(ProductID,PID)。
通过本申请实施例对于图4的上述示例性实施可知,本申请实施例通过在输入设备接入终端设备时统计与终端设备连接的输入设备,或者定时刷新与终端设备连接的输入设备,可以在控制设备接入该终端设备的情况下,及时完成终端设备与控制设备之间的通信链路的建立过程,提升了连接响应速率,进而提升用户使用体验。
参见图5,图5是本申请实施例提供的控制设备连接方法的一个可选的流程示意图,基于图3,图3中的步骤301可以更新为步骤501,将结合图5示出的步骤进行说明。
在步骤501中,根据每一输入设备的设备信息,获取每一输入设备的接口信息;接口信息包括输入设备中每一接口的接口类型。
在本申请的一些实施例中,该输入设备可以包括至少一个接口,相应地,该设备信息可以包括该输入设备的接口信息,该接口信息包括每一接口的接口类型,该接口类型可以包括音频类别、CDC控制类别、人机接口设备(HID)类别、物理类别、图像类别、打印机类别、大数据存储类别、集线器类别、CDC数据类别、智能卡类别、安全类别、诊断设备类别、无线控制器类别、特定应用(包括红外的桥接器等)类别和厂商定义的设备类别。
在步骤502中,基于每一输入设备的接口信息,将接口信息满足预设的接口要求的输入设备确定为控制设备;接口要求为存在至少一个接口类型为HID类型的接口。
在本申请的一些实施例中,该接口要求可以由管理员根据具体需求进行设定,在本申请中,由于需要的输入设备为人机接口设备,因此,需要将该接口要求设置为存在至少一个接口类型为HID类型的接口。
其中,在该输入设备中存在一个HID类型的接口的情况下,将该输入设备确定为控制设备。
在本申请的一些实施例中,可以通过以下方式实现上述步骤502:步骤5021,基于每一输入设备的接口信息,将接口信息满足接口要求的输入设备确定为待确定控制设备;步骤5022,获取待确定控制设备中接口类型为HID类型的接口的端点信息;步骤5023,在端点信息包括读端点和写端点的情况下,将待确定控制设备确定为控制设备。
在本申请的一些实施例中,在获取到每一输入设备的接口信息,可以根据上述接口要求对每一输入设备进行检测。在输入设备不满足上述接口要求的情况下,将该输入设备确定为不具备控制功能的其他设备;在输入设备满足上述接口要求的情况下,会将该输入设备确定为待确定控制设备,并对该待确定控制设备进行端点信息的检测。
其中,由于该待确定控制设备已经满足上述接口要求,因此,该待确定控制设备至少包括一个接口类型为HID类型的接口,获取HID类型接口对应的端点信息,在该端点信息同时包括读端点和写端点的情况下,将该待确定控制设备确定为控制设备。
在本申请的一些实施例中,对于该待确定控制设备的至少一个HID类型接口,获取每一HID类型接口对应的端点信息,在各端点信息中存在至少一个同时包括读端点和写端点的端点信息的情况下,将该待确定控制设备确定为控制设备。例如,存在两个待确定控制设备,其中,待确定控制设备A包括接口1(读端点1,写端点1)和接口2(读端点1);待确定控制设备B包括接口3(写端点3)和接口4(读端点4)。根据上述判断方法,待确定控制设备A由于具有同时包括读端点1和写端点1的接口1,因此,该待确定控制设备A为控制设备。
在本申请的一些实施例中,对于该待确定控制设备的至少一个HID类型接口,获取全部HID类型接口对应的端点信息,在该端点信息同时包括读端点和写端点的情况下,将该待确定控制设备确定为控制设备。例如,存在两个待确定控制设备,其中,待确定控制设备A包括接口1(读端点1,写端点1)和接口2(读端点1);待确定控制设备B包括接口3(写端点3)和接口4(读端点4)。根据上述判断方法,待确定控制设备A由于具有同时包括读端点1和2和写端点1的接口1,因此,该待确定控制设备A为控制设备,待确定控制设备B由于具有同时包括读端点3和写端点4,因此,该待确定控制设备B为控制设备。
通过本申请实施例对于图5的上述示例性实施可知,本申请实施例通过检测与终端设备连接的每一个输入设备的接口信息和端口信息,可以快速从至少一个输入设备中确定控制设备,不仅提升了控制设备的连接效率,提升用户体验,还可以对不满足预设要求的设备进行筛选,避免建立连接后无法提供相应功能的问题,提升设备连接过程的连接质量。
参见图6,图6是本申请实施例提供的控制设备连接方法的一个可选的流程示意图,基于图5,在图5中的步骤502之后,还可以包括步骤601,步骤602,将结合图6示出的步骤进行说明。
在步骤601中,通过控制进程在读端点读取控制设备产生的设备控制数据;将设备控制数据发送至目标应用程序;通过应用程序对设备控制数据进行解析,得到终端控制事件;终端控制事件包括以下至少之一:按键事件、摇杆事件和触摸板事件。
在本申请的一些实施例中,终端设备可以通过创建的控制进程在该控制设备对应的读端点处读取设备控制数据。该设备控制数据为控制设备被用户使用时产生的原始数据。
在本申请的一些实施例中,该设备控制数据包括至少一个组件控制数据和每一组件控制数据对应的组件标识。例如,由控制设备中由按键产生的组件控制数据会携带按键标识;由控制设备中由摇杆产生的组件控制数据会携带摇杆标识;由控制设备中由触摸板产生的组件控制数据会携带触摸板标识。
目标应用程序可以根据设备控制数据中每一组件控制数据对应的组件标识,将每一组件控制数据解析为该组件标识对应的终端控制事件。例如,将携带按键标识的组件控制数据解析为按键事件;将携带摇杆标识的组件控制数据解析为摇杆事件;将携带触摸板标识的组件控制数据解析为触摸板事件。
在本申请的一些实施例中,该设备控制数据包括至少一个组件,每一组件产生的组件控制数据对应不同的组件数据格式。该目标应用程序可以根据数据格式的不同,将设备控制数据划分为不同的组件数据格式对应的组件控制数据,并根据该组件数据格式对应的解析方法对该组件数据格式对应的组件控制数据进行解析,得到每一组件对应的终端控制事件。例如,将具有按键数据格式的组件控制数据解析为按键事件;将具有摇杆数据格式的组件控制数据解析为摇杆事件;将具有触摸板数据格式的组件控制数据解析为触摸板事件。
在步骤602中,获取目标应用程序产生的终端响应事件;终端响应事件包括以下至少之一:震动事件、显示事件和声音事件;通过目标应用程序对终端响应事件进行封装,得到设备控制数据;通过控制进程在写端点将设备控制数据发送至控制设备,以使控制设备根据设备控制数据进行控制反馈。
在本申请的一些实施例中,目标应用程序还可以获取控制终端的硬件信息,并根据该硬件信息生成对应的终端响应事件。其中,在控制终端具备震动传感器的情况下,目标应用程序可以生成震动事件;在控制终端具备显示器的情况下,目标应用程序可以生成显示事件;在控制终端具备喇叭的情况下,目标应用程序可以生成声音事件。
在本申请的一些实施例中,目标应用程序可以在生成包括震动事件、显示事件和声音事件的终端响应事件之后,可以根据预设的封装方法,对该终端响应时间进行封装,得到控制设备可以识别的设备控制数据。
在本申请的一些实施例中,目标应用程序可以通过该控制设备对应的写端点将设备控制数据发送至控制设备,以使控制设备根据设备控制数据进行控制反馈。
通过本申请实施例对于图6的上述示例性实施可知,本申请实施例通过目标应用程序完成控制设备可以识别的设备控制数据与目标应用程序可以识别的终端控制事件之间的转换,可以使得终端设备可以兼容各种控制设备,提升了本申请控制设备连接的兼容性。
参见图7,图7是本申请实施例提供的控制设备连接方法的一个可选的流程示意图,基于图3,在图3中的步骤303之前,还可以包括步骤701至步骤702,步骤303可以更新为步骤703,将结合图7示出的步骤进行说明。
在步骤701中,在目标应用程序不具备控制设备的使用权限的情况下,发起对于控制设备的申请使用权限的使用请求。
在本申请的一些实施例中,在获取到与终端设备连接的至少一个控制设备之后,可以检测目标应用程序对每一控制设备的使用权限。在目标应用程序对其中一个控制设备具备使用权限的情况下,可以直接执行步骤303,对该具备使用权限的控制设备创建对应的控制进程。在该目标应用程序对其中一个控制设备不具备对应的使用权限的情况下,会发起对于控制设备的申请使用权限的使用请求。
在步骤702中,通过图形交互界面显示使用请求,并接收用户输入的与使用请求对应的使用响应。
在本申请的一些实施例中,终端设备在接收到该使用请求后,可以通过图形交互界面显示该使用请求,并接受用户输入的与使用请求对应的使用响应。其中,该使用响应可以是用户通过其他输入设备在该图形交互界面中输入的,也可以是用户通过触发该终端设备中的实体按键后生成的。
在步骤703中,在使用响应为请求通过的情况下,为所述控制设备创建对应的控制进程;控制进程用于在控制设备与终端设备的目标应用程序之间传递设备控制数据;目标应用程序在运行过程中用于执行以下过程的至少之一:解析设备控制数据得到目标应用程序能够识别的终端控制事件;将终端控制事件封装为控制设备能够识别的设备控制数据。
在本申请的一些实施例中,在使用响应为请求通过的情况下,为目标应用程序分配该控制设备的使用权限,并创建该控制设备对应的控制进程。在使用响应为请求失败的情况下,将该控制设备的状态设置为禁用状态。
通过本申请实施例对于图7的上述示例性实施可知,本申请实施例在确定与该终端设备连接的至少一个控制设备之后,会检测目标应用程序对每一控制设备的使用权限,对于不具备使用权限的控制设备,可以通过图形交互界面实时显示对应的使用权限的使用请求,并接收用户的使用响应,根据使用响应确定是否为改目标应用程序分配对该控制设备的使用权限。由此,可以使得终端设备在接入新的控制设备的情况下,可以响应于用户的操作反馈决定是否为该新的控制设备创建对应的控制进程,可以提升终端设备的***安全性。
参见图8,图8是本申请实施例提供的控制设备连接方法的一个可选的流程示意图,基于图3,所述方法还可以包括步骤801,将结合图8示出的步骤进行说明。
在步骤801中,响应于控制设备对应的断开指令,终止控制设备对应的控制进程;断开指令包括以下至少之一:控制设备与终端设备断开连接时产生的断开连接指令,控制设备接收到用户输入的被动断开指令和终端设备通过图形交互界面接收到用户输入的主动断开指令。
通过本申请实施例对于图8的上述示例性实施可知,本申请实施例通过检测控制设备对应的断开指令,终止该控制设备对应的控制进程,可以在确定需要断开控制设备与终端设备中目标应用程序之间的通信连接时,及时终止对应的控制进程,不仅可以防止需要断开连接的控制设备对终端设备中目标应用程序的误操作,也可以及时减少终端设备中的计算压力,提升终端设备对其他进程的响应速率,在云游戏场景中,可以提升云游戏的响应速率,提升用户的使用体验。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
在通过游戏手柄完成对云游戏进行操作的场景中,现有的云游戏操作模式可以分为以下两种模式:鼠标模式和按键映射模式。其中,在鼠标模式下会显示自定义的鼠标光标,左摇杆控制鼠标移动,按键A控制鼠标按下和松开;在按键映射模式下,显示按键提示图标,每一个图标对应一个手柄按键(包括左右摇杆),有些操作可能要多个按键配合使用。手柄按键按下和松开对应游戏窗口对应图标位置按下和松开。其中,对于定制化的游戏手柄,还可以设置其他多种模式。
对于上述存在的各种模式,每一种都可以正常操作云游戏,但是多种模式在游戏过程中需要通过切换动作完成模式的切换,切换方法为:通过预设的按键或按键组合来完成模式的切换,例如,通过右摇杆按下来切换,按下一次切换一次模式。假如存在4种模式:鼠标模式、按键模式1、按键模式2和按键模式3。从鼠标模式切换至按键模式3时,需要用户连续按下3次,若由于用户误操作(如多切换了一次),就要重新来过。整个流程比较麻烦。
并且,对于市面上存在的非标准手柄,运行该云游戏的主机设备不一定可以识别,或者支持该非标准手柄中的定制模块,比如陀螺仪。相应地,非标准手柄的硬件也不会主动让主机设备的***识别定制模块,再该主机设备中运行的云游戏也无法使用该定制模块对应的功能。
在本申请的一些实施例中,请参阅图9,提供了一种基于蓝牙的控制设备连接方法的一个可选的流程示意图。
在步骤901中,获取蓝牙使用权限。其中,应用程序要想使用蓝牙功能,必须声明蓝牙权限。需要此权限才能执行任何蓝牙通信,例如请求连接、接收连接和传输数据等。
在步骤902中,设置蓝牙设备。应用程序可以获取***中的蓝牙适配器,通过该蓝牙适配器开启蓝牙。
其中,该蓝牙适配器为终端设备中的蓝牙适配器对象(声明的Bluetooth Adapter类),终端设备可以通过以下方法获取该蓝牙适配器对象:
public static synchronized BluetoothAdapter getDefaultAdapter()
在该终端设备具有蓝牙功能的情况下,可以得到通过该蓝牙适配器。该蓝牙适配器可以实现以下功能:开关蓝牙设备、扫描蓝牙设备设置/获取蓝牙状态信息,例如:蓝牙状态值、蓝牙Name、蓝牙Mac地址等。
在步骤903中,查找蓝牙设备。以扫描设备的方式查找附近的蓝牙设备(控制设备,如手柄)。
在步骤904中,与蓝牙设备建立连接。在建立连接的过程中,终端中的应用程序为GATT客户端,控制设备为GATT服务器,终端侧的GATT客户端可以通过上述蓝牙适配器执行GATT客户端操作。
其中,在建立连接之后,终端侧的GATT客户端可以读取控制设备侧的GATT服务器产生的控制数据,通过对该控制数据进行解析,可以得到以下至少之一:按键事件、摇杆事件、触摸板事件和其他事件。
在步骤905中,关闭GATT客户端,断开连接。终端设备中应用程序完成对该控制设备的使用后,关闭GATT连接,以便终端设备可以适当地释放计算资源。
通过上述实施例可以实现蓝牙场景下控制设备与终端设备之间建立连接的过程。
其中,该控制设备与该终端设备均需要具备蓝牙功能,应用场景比较单一。申请人经过研究,提出了一种控制设备连接设备连接方法,请参阅图10A,提供了一种基于USB的控制设备连接方法的一个可选的流程示意图。以该控制设备为游戏手柄为例,该方法可以包括以下步骤:
在步骤1001中,游戏手柄通过USB(USB无线接收器)连接到终端设备。
其中,该终端设备可以为电视或者电视盒子,用于运行云游戏客户端(对应上述实施例中的目标应用程序),通过该云游戏客户端,可以访问云游戏***中的各种云游戏。
在步骤1002中,通过游戏手柄在电视或者电视盒子上启动云游戏客户端,进入游戏大厅。
其中,该游戏大厅可以显示该云游戏***中的各种云游戏,在接收到用户对其中一个云游戏的选择操作后,可以生成对应该云游戏的运行请求并发送至云游戏服务器,云游戏服务器在运行该云游戏之后,将该云游戏对应的画面信息发送至该云游戏客户端,该云游戏客户端可以通过终端设备的显示设备完成该画面信息的显示过程。
在步骤1003中,调用***函数枚举总线上的所有USB设备。
其中,USB设备就是终端设备中USB接口上连接的设备。USB只是一个总线,只提供一个数据通路而已。USB总线驱动程序并不知道一个设备具体如何操作,有哪些行为。具体的一个设备实现什么功能,要由设备自己来决定。终端设备通过描述符来获取设备的功能和行为。描述符中记录了设备的类型、厂商ID和产品ID(通常依靠它们来加载对应的驱动程序)、端点情况、版本号等众多信息。描述符可以包括:
(1)设备描述符主要记录的信息有:设备所使用的USB版本号、设备类型、端点0的最大包大小、厂商ID(VID)和产品ID(PID)、设备版本号、厂商字符串索引、产品字符串索引、设备序列号索引、可能的配置数等。
(2)配置描述符主要记录的信息有:配置所包含的接口数、配置的编号、供电方式、是否支持远程唤醒、电流需求量等。
(3)接口描述符主要记录的信息有:接口的编号、接口的端点数、接口所使用的类、子类、协议等。
(4)端点描述符主要记录的信息有:端点号及方向、端点的传输类型、最大包长度、查寻时间间隔等。
(5)字符串描述符主要是提供一些方便人们阅读的信息,它不是必需的。
终端设备在检测到USB设备***后,就开始枚举设备了,枚举的具体做法是从设备读取各种描述符信息,这样终端设备就可以根据这些信息来加载合适的驱动程序,从而知道设备是什么样的设备,如何进行通信等。
当一个USB设备***主机后,会执行以下步骤:主机的总线驱动为USB设备分配总线和端口,***(终端设备)通过该条总线和端口与USB设备进行数据通信;终端设备根据USB设备的设备描述符(是枚举过程中主机从设备读取的第一个描述符),获取设备配置描述符(Configuration Descriptor),终端设备根据设备配置描述符获取包含的所有接口数,读取每个接口描述符(Interface Descriptor);终端设备根据接口描述符,获取每个接口使用了那几个端点(Endpoint)。可以生成如图10B所示的设备信息拓扑。
在步骤1004中,步骤1003每找到一个USB设备,就调用***函数查寻该设备的接口类。如果当前设备接口类为HID类就执行步骤1005,否则返回步骤1003。
其中,USB HID类是USB设备的一个标准设备类,包括的设备非常多。HID类设备定义它属于人机交互操作的设备,用于控制计算机操作的一些方面,比如USB鼠标、USB键盘以及USB游戏操纵杆等。HID设备不一定要有人机接口,只要符合HID类别规范的设备都是HID设备。USB HID设备的一个优势是操作***自带了HID类驱动程序,用户无需去开发驱动程序,只要使用API***调用就即可完成通信。游戏控制器(手柄)使用的协议类就是HID类。
在步骤1005中,查询当前设备接口类包含的端点个数,如果包含读写端点就执行步骤1006,否则返回步骤1003。
其中,端点描述符定义了端点的方向,分为输入和输出方向,输入方向是数据从USB设备流向终端设备(即读端点)。输出方向是终端设备流向USB设备(即写端点),可用作终端设备控制手柄操作。
在步骤1006中,记录符合步骤1004和步骤1005条件的设备,保存到一个集合里。
在步骤1007中,查询步骤1006集合里设备的USB权限,如果没有就申请USB权限,如果用户拒绝给予USB权限,就把该设备从集合里移除。
其中,可以通过如图10C所示的权限申请界面接收用户对该USB权限申请的反馈。例如,在接收到用户对选项C10的选择操作的情况下,表示用户同意分配USB权限,在接收到用户对选项C20的选择操作的情况下,表示用户拒绝分配USB权限。
在步骤1008中,步骤1007完成后集合里有USB设备就开启新的线程,从集合里取出USB设备,并按照一定的频率从读端点读取数据。
在步骤1009中,解析读取的数据,转换为操作事件,驱动云游戏客户端操作。
在步骤1010中,云游戏客户端的控制命令通过写端点写入到游戏控制设备。
在步骤1011中,设备使用完后关闭设备连接。
通过上述实施例提供的控制设备连接方法,不仅可以操控标准手柄,又能控制手柄扩展设备操作,提升云游戏操作体验。
下面继续说明本申请实施例提供的控制设备连接装置555的实施为软件模块的示例性结构,在本申请的一些实施例中,如图2所示,存储在存储器550的控制设备连接装置555中的软件模块可以包括:
获取模块5551,用于获取连接于终端设备的至少一个输入设备中每一输入设备的设备信息。
确定模块5552,用于根据每一输入设备的设备信息,从至少一个输入设备中确定至少一个控制设备。
创建模块5553,用于为每一控制设备创建对应的控制进程;控制进程用于在控制设备与终端设备的目标应用程序之间传递设备控制数据;目标应用程序在运行过程中用于执行以下过程的至少之一:解析设备控制数据得到目标应用程序能够识别的终端控制事件;将终端控制事件封装为控制设备能够识别的设备控制数据。
在本申请的一些实施例中,所述获取模块5551,还用于响应于触发指令,获取连接于终端设备的至少一个输入设备中每一输入设备的设备信息;触发指令包括以下至少之一:通过定时触发装置所产生的定时触发指令;输入设备接入终端设备时产生的接入触发指令。
在本申请的一些实施例中,所述获取模块5551,还用于枚举总线中所有硬件设备,以得到当前接入设备信息;对比当前接入设备信息与历史接入设备信息,将至少一个新接入的硬件设备确定为至少一个输入设备;通过总线获取每一输入设备的设备信息。
在本申请的一些实施例中,所述确定模块5552,还用于根据每一输入设备的设备信息,获取每一输入设备的接口信息;接口信息包括输入设备中每一接口的接口类型;基于每一输入设备的接口信息,将接口信息满足预设的接口要求的输入设备确定为控制设备;接口要求为存在至少一个接口类型为人机接口设备HID类型的接口。
在本申请的一些实施例中,所述确定模块5552,还用于基于每一输入设备的接口信息,将接口信息满足接口要求的输入设备确定为待确定控制设备;获取待确定控制设备中接口类型为HID类型的接口的端点信息;在端点信息包括读端点和写端点的情况下,将待确定控制设备确定为控制设备。
在本申请的一些实施例中,所述创建模块5553,还用于通过控制进程在读端点读取控制设备产生的设备控制数据;将设备控制数据发送至目标应用程序;通过应用程序对设备控制数据进行解析,得到终端控制事件;终端控制事件包括以下至少之一:按键事件、摇杆事件和触摸板事件。
在本申请的一些实施例中,所述创建模块5553,还用于获取目标应用程序产生的终端响应事件;终端响应事件包括以下至少之一:震动事件、显示事件和声音事件;通过目标应用程序对终端响应事件进行封装,得到设备控制数据;通过控制进程在写端点将设备控制数据发送至控制设备,以使控制设备根据设备控制数据进行控制反馈。
在本申请的一些实施例中,所述目标应用程序为连接于云游戏服务器的云游戏客户端,所述云游戏服务器用于运行云游戏,所述创建模块5553,还用于通过云游戏客户端将终端控制事件发送至云游戏服务器,以使云游戏服务器根据终端控制事件实时渲染云游戏的游戏画面,并将游戏画面传输至云游戏客户端;通过云游戏客户端接收游戏画面,并进行通过终端设备的显示设备进行显示。
在本申请的一些实施例中,所述目标应用程序为连接于云游戏服务器的云游戏客户端,所述云游戏服务器用于运行云游戏,所述创建模块5553,还用于通过云游戏客户端接收云游戏服务器生成的终端控制事件;通过云游戏客户端将服务器生成的终端控制事件封装为控制设备能够识别的设备控制数据。
在本申请的一些实施例中,控制设备连接装置555还包括申请模块和断开模块,其中:
申请模块,用于在目标应用程序不具备控制设备的使用权限的情况下,发起对于控制设备的申请使用权限的使用请求;通过图形交互界面显示使用请求,并接收用户输入的与使用请求对应的使用响应;在使用响应为请求通过的情况下,为目标应用程序分配使用权限,创建控制设备对应的控制进程。
断开模块,用于响应于控制设备对应的断开指令,终止控制设备对应的控制进程;断开指令包括以下至少之一:控制设备与终端设备断开连接时产生的断开连接指令,控制设备接收到用户输入的被动断开指令和终端设备通过图形交互界面接收到用户输入的主动断开指令。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的控制设备连接方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的控制设备连接方法,例如,如图3至图9,图10A示出的方法。
在本申请的一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在本申请的一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件***中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
综上所述,通过本申请实施例能够实现以下技术效果:
(1)本申请实施例通过获取连接于终端设备的每一输入设备的设备信息,并根据每一输入设备的设备信息,从至少一个输入设备中确定至少一个控制设备,不仅可以提升终端设备对控制设备的识别效率,而且可以根据设备信息对控制设备进行筛选,提升***安全性;并且,由于为每一控制设备建立对应的控制进程,通过该控制进程在终端设备中的目标应用程序和控制设备之间传递控制设备可以识别的设备控制数据,可以使得本申请提供的控制设备连接方法可以应用于各种型号的控制设备中;并且,通过目标应用程序完成控制设备可以识别的设备控制数据与目标应用程序可以识别的终端控制事件之间的转换,可以使得终端设备可以兼容各种控制设备,提升了本申请控制设备连接的兼容性;并且,由于目标应用程序接收的是原始的设备控制数据,解析过程由目标应用程序来完成,由此,用户无需在控制设备输入特定的切换指令,目标应用程序可以根据设备控制数据的不同,自行解析成不同类型的控制事件,进而省去了输入切换指令的过程,不仅避免了误操作情况的发生,还可以提升控制效率,提升用户使用体验。
(2)本申请实施例通过在输入设备接入终端设备时统计与终端设备连接的输入设备,或者定时刷新与终端设备连接的输入设备,可以在控制设备接入该终端设备的情况下,及时完成终端设备与控制设备之间的通信链路的建立过程,提升了连接响应速率,进而提升用户使用体验。
(3)本申请实施例通过检测与终端设备连接的每一个输入设备的接口信息和端口信息,可以快速从至少一个输入设备中确定控制设备,不仅提升了控制设备的连接效率,提升用户体验,还可以对不满足预设要求的设备进行筛选,避免建立连接后无法提供相应功能的问题,提升设备连接过程的连接质量。
(4)本申请实施例在确定与该终端设备连接的至少一个控制设备之后,会检测目标应用程序对每一控制设备的使用权限,对于不具备使用权限的控制设备,可以通过图形交互界面实时显示对应的使用权限的使用请求,并接收用户的使用响应,根据使用响应确定是否为改目标应用程序分配对该控制设备的使用权限。由此,可以使得终端设备在接入新的控制设备的情况下,可以响应于用户的操作反馈决定是否为该新的控制设备创建对应的控制进程,可以提升终端设备的***安全性。
(5)本申请实施例通过检测控制设备对应的断开指令,终止该控制设备对应的控制进程,可以在确定需要断开控制设备与终端设备中目标应用程序之间的通信连接时,及时终止对应的控制进程,不仅可以防止需要断开连接的控制设备对终端设备中目标应用程序的误操作,也可以及时减少终端设备中的计算压力,提升终端设备对其他进程的响应速率,在云游戏场景中,可以提升云游戏的响应速率,提升用户的使用体验。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (10)
1.一种控制设备连接方法,其特征在于,包括:
获取连接于终端设备的至少一个输入设备中每一所述输入设备的设备信息;
根据每一所述输入设备的设备信息,从所述至少一个输入设备中确定至少一个控制设备;
为每一所述控制设备创建对应的控制进程;所述控制进程用于在所述控制设备与所述终端设备的目标应用程序之间传递设备控制数据;所述设备控制数据包括至少一个组件控制数据和每一所述组件控制数据对应的组件标识;
所述目标应用程序在运行过程中用于执行以下过程的至少之一:根据所述设备控制数据中每一所述组件控制数据对应的组件标识,将每一所述组件控制数据解析为所述组件标识对应的、所述目标应用程序能够识别的终端控制事件;将所述终端控制事件封装为所述控制设备能够识别的设备控制数据。
2.根据权利要求1所述的方法,其特征在于,所述获取连接于终端设备的至少一个输入设备的设备信息,包括:
响应于触发指令,获取连接于终端设备的至少一个输入设备中每一所述输入设备的设备信息;所述触发指令包括以下至少之一:通过定时触发装置所产生的定时触发指令;所述输入设备接入所述终端设备时产生的接入触发指令。
3.根据权利要求1所述的方法,其特征在于,所述根据每一所述输入设备的设备信息,从所述至少一个输入设备中确定至少一个控制设备,包括:
根据每一所述输入设备的设备信息,获取每一所述输入设备的接口信息;所述接口信息包括所述输入设备中每一接口的接口类型;
基于每一所述输入设备的接口信息,将接口信息满足预设的接口要求的输入设备确定为所述控制设备;所述接口要求为存在至少一个接口类型为人机接口设备HID类型的接口。
4.根据权利要求3所述的方法,其特征在于,所述基于每一所述输入设备的接口信息,将接口信息满足预设的接口要求的输入设备确定为所述控制设备,包括:
基于每一所述输入设备的接口信息,将接口信息满足接口要求的输入设备确定为待确定控制设备;
获取所述待确定控制设备中接口类型为HID类型的接口的端点信息;
在所述端点信息包括读端点和写端点的情况下,将所述待确定控制设备确定为所述控制设备。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
通过所述控制进程在所述读端点读取所述控制设备产生的所述设备控制数据;
将所述设备控制数据发送至所述目标应用程序;
通过所述应用程序对所述设备控制数据进行解析,得到所述终端控制事件;所述终端控制事件包括以下至少之一:按键事件、摇杆事件和触摸板事件。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
获取所述目标应用程序产生的终端响应事件;所述终端响应事件包括以下至少之一:震动事件、显示事件和声音事件;
通过所述目标应用程序对所述终端响应事件进行封装,得到所述设备控制数据;
通过所述控制进程在所述写端点将所述设备控制数据发送至所述控制设备,以使所述控制设备根据所述设备控制数据进行控制反馈。
7.根据权利要求1所述的方法,其特征在于,所述目标应用程序为连接于云游戏服务器的云游戏客户端,所述云游戏服务器用于运行云游戏,所述方法还包括:
通过所述云游戏客户端将所述终端控制事件发送至所述云游戏服务器,以使所述云游戏服务器根据所述终端控制事件实时渲染所述云游戏的游戏画面,并将所述游戏画面传输至所述云游戏客户端;
通过所述云游戏客户端接收所述游戏画面,并进行通过所述终端设备的显示设备进行显示。
8.一种控制设备连接装置,其特征在于,包括:
获取模块,用于获取连接于终端设备的至少一个输入设备中每一所述输入设备的设备信息;
确定模块,用于根据每一所述输入设备的设备信息,从所述至少一个输入设备中确定至少一个控制设备;
创建模块,用于为每一所述控制设备创建对应的控制进程;所述控制进程用于在所述控制设备与所述终端设备的目标应用程序之间传递设备控制数据;所述设备控制数据包括至少一个组件控制数据和每一所述组件控制数据对应的组件标识;所述目标应用程序在运行过程中用于执行以下过程的至少之一:根据所述设备控制数据中每一所述组件控制数据对应的组件标识,将每一所述组件控制数据解析为所述组件标识对应的、所述目标应用程序能够识别的终端控制事件;将所述终端控制事件封装为所述控制设备能够识别的设备控制数据。
9.一种控制设备连接设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,存储有可执行指令,用于被处理器执行时,实现权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011225652.7A CN112316417B (zh) | 2020-11-05 | 2020-11-05 | 控制设备连接方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011225652.7A CN112316417B (zh) | 2020-11-05 | 2020-11-05 | 控制设备连接方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112316417A CN112316417A (zh) | 2021-02-05 |
CN112316417B true CN112316417B (zh) | 2022-06-07 |
Family
ID=74316076
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011225652.7A Active CN112316417B (zh) | 2020-11-05 | 2020-11-05 | 控制设备连接方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112316417B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113079216B (zh) * | 2021-04-08 | 2022-07-19 | 深圳市腾讯网络信息技术有限公司 | 一种云应用的实现方法、装置、电子设备及可读存储介质 |
CN113282441B (zh) * | 2021-07-19 | 2022-04-19 | 北京交通大学 | 一种硬件运行状态数据获取方法及硬件检测设备 |
CN114090085B (zh) * | 2021-11-18 | 2023-06-30 | 腾讯科技(深圳)有限公司 | 对象控制方法及相关装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109568947A (zh) * | 2018-11-29 | 2019-04-05 | 咪咕互动娱乐有限公司 | 一种云游戏控制方法、装置、设备和计算机存储介质 |
CN109918140A (zh) * | 2019-03-13 | 2019-06-21 | 厦门网宿有限公司 | 一种云应用操作控制方法和装置 |
CN110559651A (zh) * | 2019-09-16 | 2019-12-13 | 网易(杭州)网络有限公司 | 云游戏的控制方法及装置、计算机存储介质、电子设备 |
CN110585699A (zh) * | 2019-09-11 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 云游戏的控制方法、装置、设备及存储介质 |
CN111803927A (zh) * | 2020-06-09 | 2020-10-23 | 厦门雅基软件有限公司 | 云端游戏服务的运行方法、装置及计算机可读存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150087414A1 (en) * | 2013-09-26 | 2015-03-26 | Cellco Partnership D/B/A Verizon Wireless | Cloud gaming implemented using a mobile device and a display device |
CN104993961A (zh) * | 2015-06-30 | 2015-10-21 | 广州华多网络科技有限公司 | 设备控制方法、装置和*** |
CN106411979A (zh) * | 2015-07-31 | 2017-02-15 | 苏宁云商集团股份有限公司 | 一种接入智能设备的方法及*** |
-
2020
- 2020-11-05 CN CN202011225652.7A patent/CN112316417B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109568947A (zh) * | 2018-11-29 | 2019-04-05 | 咪咕互动娱乐有限公司 | 一种云游戏控制方法、装置、设备和计算机存储介质 |
CN109918140A (zh) * | 2019-03-13 | 2019-06-21 | 厦门网宿有限公司 | 一种云应用操作控制方法和装置 |
CN110585699A (zh) * | 2019-09-11 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 云游戏的控制方法、装置、设备及存储介质 |
CN110559651A (zh) * | 2019-09-16 | 2019-12-13 | 网易(杭州)网络有限公司 | 云游戏的控制方法及装置、计算机存储介质、电子设备 |
CN111803927A (zh) * | 2020-06-09 | 2020-10-23 | 厦门雅基软件有限公司 | 云端游戏服务的运行方法、装置及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112316417A (zh) | 2021-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112316417B (zh) | 控制设备连接方法、装置、设备及计算机可读存储介质 | |
US11213743B2 (en) | Method, system and electronic device for achieving remote control of computer game by game controller | |
US20180302349A1 (en) | System for providing dialog content | |
US9937415B1 (en) | Virtual controller for touchscreen | |
CN114286165B (zh) | 一种显示设备、移动终端、投屏数据传输方法及*** | |
US8762544B2 (en) | Selectively communicating data of a peripheral device to plural sending computers | |
EP3005080B1 (en) | Synchronizing device association data among computing devices | |
JP7346606B2 (ja) | 画面共有処理方法、装置、機器及び記憶媒体 | |
KR102502655B1 (ko) | 연속성을 갖는 컨텐츠 재생 방법 및 이를 위한 전자 장치 | |
US10178170B2 (en) | Browser-based virtual media administration | |
WO2020187183A1 (zh) | 节目推送播放方法、显示设备、移动设备及*** | |
CN113784200B (zh) | 通信终端、显示设备及投屏连接方法 | |
US11882154B2 (en) | Template representation of security resources | |
EP3704861B1 (en) | Networked user interface back channel discovery via wired video connection | |
CN114042310A (zh) | 游戏操作数据收集方法、装置、计算机设备及存储介质 | |
TW201448580A (zh) | 導引播放裝置播放由控制器自媒體伺服器所選擇之媒體項目 | |
WO2024051148A1 (zh) | 云游戏控制方法、装置、电子设备及存储介质 | |
CN114095533B (zh) | 云游戏账号登录方法、装置、计算机设备及存储介质 | |
US20230277928A1 (en) | Information processing device and image display method | |
CN114286320A (zh) | 一种显示设备、移动终端及蓝牙连接方法 | |
US8972479B2 (en) | Methods and apparatus for online program application execution between servers | |
CN111159734A (zh) | 通信终端及多应用数据互访处理方法 | |
WO2022111732A1 (zh) | 一种终端设备的应用控制方法及其相关设备 | |
CN116137667B (zh) | 一种服务器、显示设备及媒资迁移方法 | |
CN117133111A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40038698 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |