CN111744189B - 画面更新方法、装置、计算机设备和存储介质 - Google Patents

画面更新方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN111744189B
CN111744189B CN202010731481.9A CN202010731481A CN111744189B CN 111744189 B CN111744189 B CN 111744189B CN 202010731481 A CN202010731481 A CN 202010731481A CN 111744189 B CN111744189 B CN 111744189B
Authority
CN
China
Prior art keywords
sensor
data
terminal
virtual
virtual sensor
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
Application number
CN202010731481.9A
Other languages
English (en)
Other versions
CN111744189A (zh
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010731481.9A priority Critical patent/CN111744189B/zh
Publication of CN111744189A publication Critical patent/CN111744189A/zh
Priority to JP2022549018A priority patent/JP2023513915A/ja
Priority to KR1020227017512A priority patent/KR20220083828A/ko
Priority to EP21849984.6A priority patent/EP4043081A4/en
Priority to PCT/CN2021/100301 priority patent/WO2022022132A1/zh
Application granted granted Critical
Publication of CN111744189B publication Critical patent/CN111744189B/zh
Priority to US17/732,386 priority patent/US20220249945A1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/211Input arrangements for video game devices characterised by their sensors, purposes or types using inertial sensors, e.g. accelerometers or gyroscopes
    • 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
    • A63F13/525Changing parameters of virtual cameras
    • 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/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/213Input arrangements for video game devices characterised by their sensors, purposes or types comprising photodetecting means, e.g. cameras, photodiodes or infrared cells
    • 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/24Constructional details thereof, e.g. game controllers with detachable joystick handles
    • 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/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/355Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an MPEG-stream for transmitting to a mobile phone or a thin client
    • 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/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • 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
    • A63F13/525Changing parameters of virtual cameras
    • A63F13/5255Changing parameters of virtual cameras according to dedicated instructions from a player, e.g. using a secondary joystick to rotate the camera around a player's character
    • 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/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/69Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor by enabling or updating specific game elements, e.g. unlocking hidden features, items, levels or versions
    • 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/80Special adaptations for executing a specific game genre or game mode
    • A63F13/803Driving vehicles or craft, e.g. cars, airplanes, ships, robots or tanks
    • 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/80Special adaptations for executing a specific game genre or game mode
    • A63F13/837Shooting of targets
    • 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/90Constructional details or arrangements of video game devices not provided for in groups A63F13/20 or A63F13/25, e.g. housing, wiring, connections or cabinets
    • A63F13/92Video game devices specially adapted to be hand-held while playing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • 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/1043Features 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 being characterized by constructional details
    • 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/20Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform
    • A63F2300/209Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform characterized by low level software layer, relating to hardware management, e.g. Operating System, Application Programming Interface

Abstract

本申请涉及一种画面更新方法、装置、计算机设备和存储介质。所述方法包括:接收终端发送的传感器数据,传感器数据是通过终端的硬件传感器采集的,将传感器数据写入虚拟传感器,虚拟传感器与硬件传感器的结构对应,用于支持传感器服务,从虚拟传感器中读取传感器数据,根据传感器数据更新多媒体画面,生成对应的更新多媒体数据,向终端返回更新多媒体数据,以使终端根据更新多媒体数据展示对应的更新多媒体画面。采用本方法能够在应用程序运行在云端服务器的场景下,通过硬件传感器检测用户针对终端的操作来更新应用程序在终端的显示画面。

Description

画面更新方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种画面更新方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的发展,应用程序可以不需要在终端安装运行,而是将应用程序运行在服务器上。例如,云游戏是以云计算为基础的游戏方式,在云游戏的运行模式下,所有游戏都在服务器端运行,并将渲染完毕后的游戏画面压缩后通过网络传送给终端。
传统技术中,运行在终端上的应用程序通常使用硬件传感器来检测用户的动作,从而实现终端显示画面的更新。例如,运行在终端上的本地游戏通过终端上的加速度传感器检测出用户的摇晃动作,从而实现游戏画面的移动。
然而,由于应用程序运行在服务器上,服务器是没有硬件传感器的,从而无法通过检测用户的动作来实现终端显示画面的更新。
发明内容
基于此,有必要针对上述技术问题,提供一种能够在应用程序运行在服务器上的场景下,通过检测用户的动作来实现终端显示画面的更新的画面更新方法、装置、计算机设备和存储介质。
一种画面更新方法,所述方法包括:
接收终端发送的传感器数据;传感器数据是通过终端的硬件传感器采集的;
将传感器数据写入虚拟传感器;虚拟传感器与硬件传感器的结构对应,用于支持传感器服务;
从虚拟传感器中读取传感器数据,根据传感器数据更新多媒体画面,生成对应的更新多媒体数据;
向终端返回更新多媒体数据,以使终端根据更新多媒体数据展示对应的更新多媒体画面。
在一个实施例中,根据目标虚拟传感器设备的当前开关状态生成硬件传感器控制指令,向终端返回硬件传感器控制指令,以使终端根据当前开关状态对目标虚拟传感器设备对应的目标硬件传感器进行开关状态同步,包括:
从共享内存中读取当前开关状态统计列表,生成对应的硬件传感器控制指令;硬件传感器控制指令携带当前开关状态统计列表;向终端返回硬件传感器控制指令,以使终端根据硬件传感器控制指令获取历史开关状态统计列表,根据历史开关状态统计列表和当前开关状态统计列表的差异更新对应的目标硬件传感器的开关状态。
一种画面更新装置,所述装置包括:
传感器数据接收模块,用于接收终端发送的传感器数据;传感器数据是通过终端的硬件传感器采集的;
传感器数据写入模块,用于将传感器数据写入虚拟传感器;虚拟传感器与硬件传感器的结构对应,用于支持传感器服务;
多媒体数据生成模块,用于从虚拟传感器中读取传感器数据,根据传感器数据更新多媒体画面,生成对应的更新多媒体数据;
多媒体数据发送模块,用于向终端返回更新多媒体数据,以使终端根据更新多媒体数据展示对应的更新多媒体画面。
在一个实施例中,画面更新装置还包括:
指令接收模块,用于接收终端发送的应用启动指令;应用启动指令携带终端的终端标识和应用标识;
指令处理模块,用于根据应用启动指令,从空闲容器池中获取应用标识对应的目标容器,启动目标容器,将目标容器和终端标识进行关联。
在一个实施例中,传感器数据携带所述终端标识,传感器数据接收模块还用于通过应用程序代理接收终端发送的传感器数据,根据终端标识将传感器数据输入目标容器;目标容器包括应用标识对应的应用程序、传感器服务模块、虚拟传感器和应用程序后端,传感器服务模块用于提供传感器服务;应用程序后端用于接收应用程序代理输入的传感器数据,将传感器数据写入虚拟传感器;应用程序用于调用传感器服务模块从虚拟传感器中读取传感器数据,根据传感器数据更新多媒体画面,将更新后的多媒体画面发送至应用程序后端;应用程序后端还用于根据更新后的多媒体画面生成对应的更新多媒体数据,将更新多媒体数据通过所述应用程序代理发送至终端。
在一个实施例中,虚拟传感器包括虚拟传感器抽象层和共享内存,所述虚拟传感器抽象层用于提供虚拟传感器列表和传感器接口,所述共享内存用于生成虚拟传感器设备。
在一个实施例中,指令接收模块还用于接收终端发送的虚拟传感器控制指令;虚拟传感器控制指令携带传感器类型标识。指令处理模块还用于根据虚拟传感器控制指令,通过虚拟传感器抽象层更新传感器类型标识对应的目标虚拟传感器设备的开关状态,得到目标虚拟传感器设备的当前开关状态;根据目标虚拟传感器设备的当前开关状态生成硬件传感器控制指令,向终端返回硬件传感器控制指令,以使终端根据当前开关状态对目标虚拟传感器设备对应的目标硬件传感器进行开关状态同步。
在一个实施例中,指令处理模块还用于根据虚拟传感器控制指令,通过传感器服务调用虚拟传感器抽象层中的传感器创建函数;根据传感器创建函数生成传感器接口和共享内存。
在一个实施例中,指令处理模块还用于当虚拟传感器列表包括传感器类型标识时,通过传感器服务调用传感器接口更新目标虚拟传感器设备的开关状态,得到目标虚拟传感器设备的当前开关状态;将目标虚拟传感器设备的当前开关状态写入共享内存中的当前开关状态统计列表,当前开关状态统计列表包括多个虚拟传感器设备的当前开关状态。
在一个实施例中,指令处理模块还用于从共享内存中读取当前开关状态统计列表,生成对应的硬件传感器控制指令;硬件传感器控制指令携带当前开关状态统计列表;向终端返回硬件传感器控制指令,以使终端根据硬件传感器控制指令获取历史开关状态统计列表,根据历史开关状态统计列表和当前开关状态统计列表的差异更新对应的目标硬件传感器的开关状态。
在一个实施例中,传感器数据写入模块还用于将传感器数据写入共享内存中队列的队尾,并更新队尾标识。多媒体数据生成模块还用于从队列的队首读取传感器数据,并更新队首标识。
在一个实施例中,多媒体数据生成模块还用于当写入虚拟传感器的传感器数据大于预设写入阈值时,获取预设回退阈值;根据预设回退阈值更新队首标识,得到目标队首标识;从队列中,将目标队首标识和队尾标识之间的传感器数据作为目标传感器数据;根据目标传感器数据更新多媒体画面,生成对应的更新多媒体数据。
在一个实施例中,多媒体数据生成模块还用于获取全景画面;多媒体画面是全景画面中与第一视角相匹配的画面,第一视角为当前观察视角;根据传感器数据调整第一视角,得到第二视角;从全景画面中确定与第二视角相匹配的画面,生成对应的多媒体视角更新数据。多媒体数据发送模块还用于向终端返回多媒体视角更新数据,以使终端根据多媒体视角更新数据将当前显示画面从第一视角对应的画面切换到第二视角对应的画面。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
接收终端发送的传感器数据;传感器数据是通过终端的硬件传感器采集的;
将传感器数据写入虚拟传感器;虚拟传感器与硬件传感器的结构对应,用于支持传感器服务;
从虚拟传感器中读取传感器数据,根据传感器数据更新多媒体画面,生成对应的更新多媒体数据;
向终端返回更新多媒体数据,以使终端根据更新多媒体数据展示对应的更新多媒体画面。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
接收终端发送的传感器数据;传感器数据是通过终端的硬件传感器采集的;
将传感器数据写入虚拟传感器;虚拟传感器与硬件传感器的结构对应,用于支持传感器服务;
从虚拟传感器中读取传感器数据,根据传感器数据更新多媒体画面,生成对应的更新多媒体数据;
向终端返回更新多媒体数据,以使终端根据更新多媒体数据展示对应的更新多媒体画面。
一种画面更新方法,所述方法包括:
获取本地的硬件传感器采集的传感器数据;
将传感器数据发送至服务器,以使服务器通过应用程序后端将传感器数据写入虚拟传感器,通过应用程序从虚拟传感器中读取传感器数据,根据传感器数据更新多媒体画面,通过应用程序后端根据更新后的多媒体画面生成对应的更新多媒体数据;虚拟传感器与硬件传感器的结构对应,用于支持传感器服务;
接收服务器返回的更新多媒体数据;
根据更新多媒体数据展示对应的更新多媒体画面。
一种画面更新装置,所述装置包括:
传感器数据获取模块,用于获取本地的硬件传感器采集的传感器数据;
传感器数据发送模块,用于将传感器数据发送至服务器,以使服务器通过应用程序后端将传感器数据写入虚拟传感器,通过应用程序从虚拟传感器中读取传感器数据,根据传感器数据更新多媒体画面,通过应用程序后端根据更新后的多媒体画面生成对应的更新多媒体数据;虚拟传感器与硬件传感器的结构对应,用于支持传感器服务;
多媒体数据接收模块,用于接收服务器返回的更新多媒体数据;
多媒体画面展示模块,用于根据更新多媒体数据展示对应的更新多媒体画面。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取本地的硬件传感器采集的传感器数据;
将传感器数据发送至服务器,以使服务器通过应用程序后端将传感器数据写入虚拟传感器,通过应用程序从虚拟传感器中读取传感器数据,根据传感器数据更新多媒体画面,通过应用程序后端根据更新后的多媒体画面生成对应的更新多媒体数据;虚拟传感器与硬件传感器的结构对应,用于支持传感器服务;
接收服务器返回的更新多媒体数据;
根据更新多媒体数据展示对应的更新多媒体画面。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取本地的硬件传感器采集的传感器数据;
将传感器数据发送至服务器,以使服务器通过应用程序后端将传感器数据写入虚拟传感器,通过应用程序从虚拟传感器中读取传感器数据,根据传感器数据更新多媒体画面,通过应用程序后端根据更新后的多媒体画面生成对应的更新多媒体数据;虚拟传感器与硬件传感器的结构对应,用于支持传感器服务;
接收服务器返回的更新多媒体数据;
根据更新多媒体数据展示对应的更新多媒体画面。
上述画面更新方法、装置、计算机设备和存储介质,通过预先在服务器中构建与硬件传感器结构相对应的虚拟传感器,虚拟传感器可以用于存储传感器数据和支持传感器服务,那么在应用程序运行在云端服务器的场景下,服务器即使没有硬件传感器,也可以利用虚拟传感器启动传感器服务以控制终端的硬件传感器,服务器可以从虚拟传感器中读取根据用户操作触发、通过硬件传感器采集、并由终端发送过来的传感器数据,根据传感器数据更新多媒体画面,生成对应的更新多媒体数据,终端接收到更新多媒体数据后,可以展示更新多媒体数据对应的多媒体画面,最终实现在该场景下也可以通过硬件传感器检测用户针对终端的操作来更新应用程序在终端的显示画面。
附图说明
图1为一个实施例中画面更新方法的应用环境图;
图2为一个实施例中画面更新方法的流程示意图;
图3为一个实施例中虚拟传感器和硬件传感器的结构示意图;
图4为一个实施例中云游戏设置的界面示意图;
图5为一个实施例中启动目标容器的流程示意图;
图6为一个实施例中控制虚拟传感器和硬件传感器的流程示意图;
图7为另一个实施例中控制虚拟传感器和硬件传感器的流程示意图;
图8为一个实施例中传感器开关状态监测的原理示意图;
图9为一个实施例中传感器数据传输的原理示意图;
图10为一个实施例中传感器数据筛选的流程示意图;
图11为一个实施例中画面更新方法所对应的整体架构示意图;
图12为一个实施例中终端画面更新的界面示意图;
图13为另一个实施例中画面更新方法的流程示意图;
图14为一个实施例中画面更新装置的结构框图;
图15为另一个实施例中画面更新装置的结构框图;
图16为一个实施例中计算机设备的内部结构图;
图17为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的画面更新方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。终端102可以通过本地的硬件传感器采集传感器数据,并发送至服务器104。服务器104可以将传感器数据写入本地的虚拟传感器。服务器104上的虚拟传感器的结构和终端102上的硬件传感器的结构相对应,虚拟传感器可以用于支持传感器服务。服务器104可以从虚拟传感器中读取传感器数据,根据传感器数据更新多媒体画面,生成对应的更新多媒体数据。服务器104可以将更新多媒体数据发送至终端102。终端102接收到更新多媒体数据后,可以在本地展示该更新多媒体数据对应的更新多媒体画面。
其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
云游戏(Cloud gaming)又可称为游戏点播(gaming on demand),是一种以云计算技术为基础的在线游戏技术。云游戏技术使图形处理与数据运算能力相对有限的轻端设备(thin client)能运行高品质游戏。在云游戏场景下,游戏并不在玩家游戏终端,而是在云端服务器中运行,并由云端服务器将游戏场景渲染为视频音频流,通过网络传输给玩家游戏终端。玩家游戏终端无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力与获取玩家输入指令并发送给云端服务器的能力即可。
在一个实施例中,如图2所示,提供了一种画面更新方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
步骤S202,接收终端发送的传感器数据;传感器数据是通过终端的硬件传感器采集的。
其中,硬件传感器是部署在终端内的硬件设备,用于采集数据。硬件传感器的类型不限,包括陀螺仪传感器、加速度传感器、重力传感器、磁场传感器、地磁传感器等。一个终端中,往往配置有多种硬件传感器,分别采集不同类型的数据。
具体地,终端可以通过应用客户端获取虚拟传感器开启指令,将虚拟传感器开启指令发送至服务器,虚拟传感器开启指令携带传感器类型标识。服务器接收到虚拟传感器开启指令后,可以开启该传感器类型标识对应的虚拟传感器设备,生成对应的硬件传感器开启指令,硬件传感器开启指令携带该传感器类型标识。终端接收到硬件传感器开启指令后,可以开启该传感器类型标识对应的硬件传感器,进而用户可以通过硬件传感器实现在终端的应用客户端中切换多媒体画面。例如,在快艇类游戏应用中打开加速度传感器,玩家可以通过终端上的加速度传感器控制快艇的前进方向,进而切换当前展示的游戏画面。在旅游类地图应用中打开加速度传感器,用户可以通过终端上的加速度传感器切换当前展示的景区画面。终端可以获取硬件传感器实时采集的传感器数据,并发送至服务器。
步骤S204,将传感器数据写入虚拟传感器;虚拟传感器与硬件传感器的结构对应,用于支持传感器服务。
其中,虚拟传感器是部署在服务器内的虚拟设备,虚拟传感器与硬件传感器的结构对应,用于支持传感器服务。传感器服务是服务器上的传感器服务模块所提供的功能,用于控制虚拟传感器。传感器服务模块可以将传感器服务注册至服务器上的传感器管理模块。传感器管理模块用于注册传感器服务、发现传感器服务以及检查传感器服务的健康状态。虚拟传感器包括虚拟传感器抽象层和共享内存。
具体地,服务器中预先构建有虚拟传感器,虚拟传感器的结构和终端中硬件传感器的结构相对应。服务器接收到传感器数据后,可以将传感器数据写入虚拟传感器,将传感器数据缓存在虚拟传感器中。后续,服务器中的应用程序(与终端上的应用程序相对应)可以通过调用传感器服务从虚拟传感器中读取传感器数据。
在一个实施例中,虚拟传感器包括虚拟传感器抽象层和共享内存,虚拟传感器抽象层用于提供虚拟传感器列表和传感器接口,共享内存用于生成虚拟传感器设备。
具体地,虚拟传感器包括虚拟传感器抽象层和共享内存。虚拟传感器抽象层提供有传感器接口,上层传感器服务模块可以通过调用传感器接口来驱动调用虚拟传感器设备。虚拟传感器抽象层还提供有虚拟传感器列表,上层传感器服务模块可以通过查询虚拟传感器列表获知当前支持的传感器种类以及相应的特性。服务器在开启或关闭某种虚拟传感器时,首先会在虚拟传感器列表中查询是否存在对应的传感器种类,查找到了才会进一步操作,否则会向终端返回开启失败或关闭失败的通知消息。此外,通过创建共享内存来虚拟硬件传感器设备。
参考图3,图3为一个实施例中硬件传感器和虚拟传感器的结构示意图。参考图3,硬件传感器包括传感器硬件抽象层(Sensor HAL)和硬件传感器设备(Real SensorDevice)。传感器硬件抽象层提供有多个传感器接口。虚拟传感器包括虚拟传感器硬件抽象层(Virtual Sensor HAL,也就是虚拟传感器抽象层)和共享内存。传感器硬件抽象层和虚拟传感器硬件抽象层相对应,硬件传感器设备和共享内存相对应。同样的,虚拟传感器硬件抽象层也提供有多个传感器接口。基于共享内存可以生成至少一个虚拟传感器设备(Virtual Sensor Device),即所有虚拟传感器设备共享一个共享内存。传感器服务模块通过调用传感器接口对虚拟传感器设备的所有操作,虚拟传感器抽象层都可以通过对共享内存的相应操作来实现。传感器接口具体可以包括激活接口(activate接口)、延迟设置接口(setDelay接口)、读取接口(poll接口)、参数设置接口(batch接口)、清空接口(flush接口)等。activate接口用于启动或停止传感器设备。setDelay接口用于设置传感器设备的采样率,仅用于首次设置时调用。poll接口用于读取传感器数据。batch接口用于设置传感器设备的参数,例如设置采样率和最大报告延迟。flush接口用于清空传感器数据。这样,在服务器中构建与硬件传感器结构对应的虚拟传感器,即使服务器没有硬件传感器,虚拟传感器也可以保障服务器成功启动传感器服务。
步骤S206,从虚拟传感器中读取传感器数据,根据传感器数据更新多媒体画面,生成对应的更新多媒体数据。
其中,多媒体画面是以虚拟对象的当前观察视角对虚拟环境进行观察得到的画面。虚拟环境是终端上应用程序运行时显示的虚拟环境,例如云游戏应用程序中某一款云游戏的游戏画面,旅游应用程序中某一景区的地图画面等。虚拟对象是虚拟环境中可活动的对象,具体可以是虚拟人物、虚拟动物等。多媒体画面是根据虚拟环境中多个环境元素进行渲染得到的画面。环境元素是指虚拟环境的组成元素,具体可以包括虚拟人物、虚拟建筑、虚拟工具等,多媒体数据是对渲染后的多媒体画面进行编码生成的多媒体数据,具体可以包括音频数据、视频数据和文本数据等。
具体地,服务器可以通过本地的应用程序从虚拟传感器中读取传感器数据,通过本地的应用程序根据传感器数据确定视角调整数据,根据视角调整数据对当前该应用程序对应的多媒体画面进行更新,得到更新多媒体画面,对更新多媒体画面进行编码得到对应的更新多媒体数据。
在一个实施例中,服务器上的应用程序后端可以将传感器数据写入虚拟传感器中的共享内存,服务器上的应用程序可以调用传感器服务通过虚拟传感器抽象层从共享内存中获取传感器数据。
步骤S208,向终端返回更新多媒体数据,以使终端根据更新多媒体数据展示对应的更新多媒体画面。
具体地,服务器可以将更新多媒体数据发送至终端。终端接收到更新多媒体数据后,对更新多媒体数据进行解码,得到对应的更新多媒体画面,并展示该更新多媒体画面。
举例说明,在云游戏场景下,终端运行有云游戏客户端,玩家可以在云游戏客户端中打开任意一款云游戏,例如射击游戏,进而云游戏服务器会在本地运行该云游戏对应的应用程序。参考图4,图4为一个实施例中游戏配置界面的界面示意图。玩家可以在射击游戏的游戏配置界面中触发用于打开陀螺仪传感器的按钮,如图4中的区域402。进而云游戏服务器可以开启对应的虚拟陀螺仪传感器,进而终端可以开启对应的硬件陀螺仪传感器。那么玩家可以通过移动终端来控制射击时的观察视角。当玩家移动终端时,终端上的硬件陀螺仪传感器可以采集对应的传感器数据,将传感器数据发送至云游戏服务器。云游戏服务器接收到传感器数据后,可以将传感器数据写入虚拟传感器。云游戏服务器上的射击游戏应用程序可以从虚拟传感器中读取传感器数据,根据传感器数据调整射击视角,更新射击画面,生成对应的更新多媒体数据。云游戏客户端可以接收云游戏服务器返回的更新多媒体数据,展示该更新多媒体数据对应的更新射击画面。这样,相对于传统技术中玩家需要通过手指触摸屏幕来切换射击视角和射击画面,在本方法中玩家通过移动终端即可实现射击视角和射击画面的切换,并且玩家只需要通过手机触摸屏幕进行射击操作,更接近通过移动枪械调整射击视角,通过扣动手指开枪射击的真实射击场景。
上述画面更新方法中,通过接收终端发送的传感器数据,传感器数据是通过终端的硬件传感器采集的,将传感器数据写入虚拟传感器,虚拟传感器与硬件传感器的结构对应,用于支持传感器服务,从虚拟传感器中读取传感器数据,根据传感器数据更新多媒体画面,生成对应的更新多媒体数据,向终端返回更新多媒体数据,以使终端根据更新多媒体数据展示对应的更新多媒体画面。这样,预先在服务器中构建与硬件传感器结构相对应的虚拟传感器,虚拟传感器可以用于存储传感器数据和支持传感器服务,那么在应用程序运行在云端服务器的场景下,服务器即使没有硬件传感器,也可以利用虚拟传感器启动传感器服务以控制终端的硬件传感器,服务器可以从虚拟传感器中读取根据用户操作触发、通过硬件传感器采集、并由终端发送过来的传感器数据,根据传感器数据更新多媒体画面,生成对应的更新多媒体数据,终端接收到更新多媒体数据后,可以展示更新多媒体数据对应的多媒体画面,最终实现在该场景下也可以通过硬件传感器检测用户针对终端的操作来更新应用程序在终端的显示画面。
在一个实施例中,如图5所示,接收终端发送的传感器数据之前,画面更新方法还包括:
步骤S502,接收终端发送的应用启动指令;应用启动指令携带终端的终端标识和应用标识。
步骤S504,根据应用启动指令,从空闲容器池中获取应用标识对应的目标容器,启动目标容器,将目标容器和终端标识进行关联。
其中,应用启动指令是用于启动部署在服务器上的目标容器,目标容器里部署有应用程序。服务器上可以部署多个容器,操作系统运行在容器里,应用程序运行在操作系统上。一个容器中安装有一个应用程序,不同容器中安装的应用程序可以相同或不同,服务器可以将容器中应用程序的应用标识和该容器进行关联。根据容器的运行状态可以将服务器上的容器划分为空闲容器和服务容器。容器的运行状态包括空闲状态和服务状态。当容器处于空闲状态,则说明该容器未运行,未分配给终端运行应用程序,该容器为空闲容器。当容器处于服务状态,则说明该容器正在运行,已分配给终端运行应用程序,该容器为服务容器。空闲容器池包括至少一个空闲容器。
具体地,终端上可以运行应用客户端,应用客户端可以展示服务器当前支持安装和运行的应用列表,应用列表中可以展示应用标识、应用评分、应用简介等信息,便于用户对各个应用程序进行初步了解。终端可以接收用户作用于应用列表中任意一个应用程序的触发操作,根据该触发操作生成应用启动指令,应用启动指令携带终端的终端标识和用户触发的应用程序的应用标识。终端可以将应用启动指令发送至服务器,服务器接收到应用启动指令后,可以为该终端分配对应的目标容器。服务器具体可以是根据应用启动指令在空闲容器池中查找与该应用标识相关联的空闲容器作为目标容器,启动运行该目标容器,将目标容器和终端标识进行关联,即将该目标容器分配给该终端进行服务。目标容器启动后,可以实时生成多媒体画面,并将多媒体画面对应的多媒体数据实时传输至终端,终端上的应用客户端可以根据多媒体数据展示对应的多媒体画面。例如,终端上的应用客户端为云游戏客户端,云游戏客户端展示有射击类云游戏、格斗类云游戏、驾驶类云游戏。用户可以在云游戏客户端中点击驾驶类云游戏,进而云游戏服务器可以为该终端分配并运行驾驶类云游戏对应的目标容器,从而终端上可以展示驾驶类云游戏对应的游戏画面。其中,触发操作具体可以是触摸操作、光标操作、按键操作或者语音操作。
本实施例中,将应用程序安装在服务器的容器内,由服务器的容器运行应用程序,从而用户不需要在终端上安装应用程序,进而有效节约终端的存储资源。
在一个实施例中,传感器数据携带终端标识,接收终端发送的传感器数据,包括:通过应用程序代理接收终端发送的传感器数据,根据终端标识将传感器数据输入目标容器;目标容器包括应用标识对应的应用程序、传感器服务模块、虚拟传感器和应用程序后端,传感器服务模块用于提供传感器服务;应用程序后端用于接收应用程序代理输入的传感器数据,将传感器数据写入虚拟传感器;应用程序用于调用传感器服务模块从虚拟传感器中读取传感器数据,根据传感器数据更新多媒体画面,将更新后的多媒体画面发送至应用程序后端;应用程序后端还用于根据更新后的多媒体画面生成对应的更新多媒体数据,将更新多媒体数据通过应用程序代理发送至终端。
具体地,服务器包括应用程序代理和目标容器,目标容器包括应用程序、传感器服务模块、虚拟传感器和应用程序后端。应用程序和虚拟传感器通过传感器服务模块进行数据传输,目标容器和应用程序代理通过应用程序后端进行数据传输,目标容器和终端通过应用程序代理进行数据传输。应用程序代理可以接收终端发送的传感器数据,将传感器数据输入目标容器。应用程序代理具体可以是将传感器数据输入目标容器中的应用程序后端。应用程序后端将传感器数据写入虚拟传感器,将传感器数据缓存在虚拟传感器中。应用程序可以调用传感器服务模块从虚拟传感器中读取传感器数据,应用程序可以根据传感器数据对多媒体画面进行更新,得到更新多媒体画面,将更新多媒体画面发送至应用程序后端,应用程序后端对更新多媒体画面进行编码得到更新多媒体数据,将更新多媒体数据发送至应用程序代理。应用程序代理将更新多媒体数据发送至终端。
在一个实施例中,应用程序代理和终端基于webrtc(Web Real-TimeCommunication,网页即时通信)技术进行数据传输。应用程序代理可以通过webrtc的数据通道接收终端发送的传感器数据。应用程序代理可以通过webrtc的视频通道向终端发送更新多媒体数据。进一步的,应用程序代理可以将更新多媒体数据进行数据压缩,将压缩后的更新多媒体数据发送至终端,以降低网络传输的数据量,提高数据传输的速度。
本实施例中,通过应用程序、传感器服务模块、虚拟传感器、应用程序后端、应用程序代理和终端之间的协作,可以保障服务器和终端之间有序地进行数据传输。
在一个实施例中,如图6所示,接收终端发送的传感器数据之前,画面更新方法还包括:
步骤S602,接收终端发送的虚拟传感器控制指令;虚拟传感器控制指令携带传感器类型标识。
其中,虚拟传感器控制指令是用于控制虚拟传感器设备的开关状态,具体可以是用于开启虚拟传感器设备,也可以是用于关闭虚拟传感器设备。传感器类型标识是一种标识,用于唯一标识传感器类型,具体可以包括数字、字母、字符中的至少一种。
具体地,终端可以展示应用程序配置界面,应用程序配置界面中展示有用于触发传感器控制动作的控件,例如控制加速度传感器开启或关闭的控件。当检测到用户作用于该控件的触发操作时,终端根据该控件对应的传感器类型标识生成虚拟传感器控制指令,并将虚拟传感器控制指令发送至服务器。在一个实施例中,终端可以将虚拟传感器控制指令通过服务器上的应用程序代理、应用程序后端发送至目标容器内的应用程序。
步骤S604,根据虚拟传感器控制指令,通过虚拟传感器抽象层更新传感器类型标识对应的目标虚拟传感器设备的开关状态,得到目标虚拟传感器设备的当前开关状态。
其中,开关状态包括开启状态和关闭状态。开启状态和关闭状态为互斥的状态。当前开关状态是指目标虚拟传感器设备更新后的开关状态。
具体地,服务器接收到虚拟传感器控制指令后,可以通过虚拟传感器抽象层将传感器类型标识对应的目标虚拟传感器设备的开关状态从原先的关闭状态修改为互斥的开启状态,或者,将传感器类型标识对应的目标虚拟传感器设备的开关状态从原先的开启状态修改为互斥的关闭状态。当然,虚拟传感器控制指令还可以携带具体的控制类型,控制类型包括开启或关闭。当服务器接收到虚拟传感器控制指令后,根据控制类型修改目标虚拟传感器设备的开关状态,例如,控制类型为开启,当目标虚拟传感器设备原先的开关状态为关闭状态时,服务器将目标虚拟传感器设备的开关状态修改为开启状态;当目标虚拟传感器设备原先的开关状态为开启状态时,将目标虚拟传感器设备的开关状态保持开启状态。在一个实施例中,目标容器内的应用程序接收到虚拟传感器控制指令后,通过虚拟传感器抽象层更新传感器类型标识对应的目标虚拟传感器设备的开关状态,得到目标虚拟传感器设备的当前开关状态。
步骤S606,根据目标虚拟传感器设备的当前开关状态生成硬件传感器控制指令,向终端返回硬件传感器控制指令,以使终端根据当前开关状态对目标虚拟传感器设备对应的目标硬件传感器进行开关状态同步。
其中,硬件传感器控制指令是用于控制硬件传感器设备的开关状态,具体可以是用于开启硬件传感器设备,也可以是用于关闭硬件传感器设备。
具体地,当目标虚拟传感器设备的开关状态更新完毕后,服务器根据目标虚拟传感器设备的当前开关状态生成硬件传感器控制指令,并发送至终端。终端接收到硬件传感器控制指令后,将目标虚拟传感器设备对应的目标硬件传感器的开关状态修改为与目标虚拟传感器设备的当前开关状态一致。例如,虚拟加速度传感器设备的当前开关状态为开启状态,那么硬件传感器控制指令用于指示终端将硬件加速度传感器的开关状态修改为开启状态,也就是,开启硬件加速度传感器。在一个实施例中,服务器上的应用程序后端根据目标虚拟传感器设备的当前开关状态生成硬件传感器控制指令,通过应用程序代理向终端返回硬件传感器控制指令。
本实施例中,终端发送的虚拟传感器控制指令可以指示服务器更新对应的目标虚拟传感器设备的开关状态,从而实现开启或关闭服务器本地的虚拟传感器设备,服务器根据目标虚拟传感器设备的当前开关状态生成的硬件传感器控制指令可以指示终端更新目标虚拟传感器设备对应的目标物理传感器的开关状态,从而实现开启或关闭终端本地的硬件传感器,最终虚拟传感器设备和对应的物理传感器实现状态同步,便于在终端和服务器之间传输传感器数据。
在一个实施例中,接收终端发送的虚拟传感器控制指令之后,画面更新方法还包括:根据虚拟传感器控制指令,通过传感器服务调用虚拟传感器抽象层中的传感器创建函数;根据传感器创建函数生成传感器接口和共享内存。
具体地,虚拟传感器抽象层中定义有传感器创建函数,传感器创建函数用于生成传感器接口和共享内存。当目标容器内的应用程序首次接收到虚拟传感器控制指令时,应用程序通过传感器服务调用传感器创建函数,根据传感器创建函数生成各个传感器接口,根据传感器创建函数生成共享内存来实现虚拟传感器设备。后续,应用程序即可通过传感器服务调用activate接口开启或关闭相应的虚拟传感器设备,通过传感器服务调用poll接口读取传感器数据。
在一个实施例中,虚拟传感器抽象层中的sensors_module_mothods结构体定义了open_sensors函数(传感器创建函数)。当目标容器内的应用程序通过传感器服务调用open函数时,会调用到sensors_module_mothods里的open_sensors函数,通过open_sensors函数创建传感器接口,通过open_sensors函数根据linux标准接口创建共享内存(/dev/shm/sensors)。
在一个实施例中,如图7所示,根据虚拟传感器控制指令,通过虚拟传感器抽象层更新传感器类型标识对应的目标虚拟传感器设备的开关状态,得到目标虚拟传感器设备的当前开关状态,包括:
步骤S604A,当虚拟传感器列表包括传感器类型标识时,通过传感器服务调用传感器接口更新目标虚拟传感器设备的开关状态,得到目标虚拟传感器设备的当前开关状态。
具体地,服务器接收到虚拟传感器控制指令后,可以调用传感器服务在虚拟传感器抽象层的虚拟传感器列表中查询是否存在该传感器类型标识。当存在该传感器类型标识时,确定服务器当前支持该传感器类型标识对应的目标虚拟传感器设备。那么,服务器可以通过传感器服务调用传感器接口更新目标虚拟传感器设备的开关状态,即服务器上的传感器服务模块可以调用传感器接口(activate接口)更新目标虚拟传感器设备的开关状态,得到目标虚拟传感器设备的当前开关状态。例如,由于开关状态只有开启状态和关闭状态,可以用0表示关闭状态,1表示开启状态。若虚拟传感器控制指令是用于控制开启目标虚拟传感器设备,那么服务器可以将目标虚拟传感器设备的开关状态可以用1表示。在一个实施例中,目标容器内的应用程序通过调用传感器服务来指示传感器服务模块调用传感器接口更新目标虚拟传感器设备的开关状态。
步骤S604B,将目标虚拟传感器设备的当前开关状态写入共享内存中的当前开关状态统计列表,当前开关状态统计列表包括多个虚拟传感器设备的当前开关状态。
具体地,服务器可以将目标虚拟传感器设备的当前开关状态写入共享内存中的当前开关状态统计列表,即将目标虚拟传感器设备的当前开关状态保存到共享内存中的当前开关状态统计列表。当前开关状态统计列表包括多个虚拟传感器设备的当前开关状态,通过查询当前开关状态统计列表可以及时获知各个虚拟传感器设备目前是开启状态还是关闭状态。
本实施例中,当虚拟传感器列表包括传感器类型标识时,服务器才执行针对目标虚拟传感器设备的开关状态更新操作,可以保障开关状态更新操作的有效性。将目标虚拟传感器设备的当前开关状态写入共享内存中的当前开关状态统计列表,便于后续终端能够准确识别并控制目标虚拟传感器设备对应的目标硬件传感器。
在一个实施例中,如图7所示,根据目标虚拟传感器设备的当前开关状态生成硬件传感器控制指令,向终端返回硬件传感器控制指令,以使终端根据当前开关状态对目标虚拟传感器设备对应的目标硬件传感器进行开关状态同步,包括:
步骤S606A,从共享内存中读取当前开关状态统计列表,生成对应的硬件传感器控制指令;硬件传感器控制指令携带当前开关状态统计列表。
步骤S606B,向终端返回硬件传感器控制指令,以使终端根据硬件传感器控制指令获取历史开关状态统计列表,根据历史开关状态统计列表和当前开关状态统计列表的差异更新对应的目标硬件传感器的开关状态。
其中,当前开关状态统计列表是最新生成的开关状态统计列表。历史开关状态统计列表是指上一次生成的开关状态统计列表。终端每次接收到携带开关状态统计列表的硬件传感器控制指令,都会将开关状态统计列表保持在本地。
具体地,服务器可以实时监测共享内存中开关状态统计列表。当服务器根据虚拟传感器控制指令更新目标虚拟传感器设备的开关状态,从而导致开关状态统计列表发生变化时,服务器可以从共享内存中读取当前开关状态统计列表,生成携带当前开关状态统计列表的硬件传感器控制指令,并将硬件传感器控制指令发送至终端。终端接收到硬件传感器控制指令后,可以将当前开关状态统计列表保存在本地,并在本地获取上一次保存的历史开关状态统计列表,将当前开关状态统计列表和历史开关状态统计列表进行比对即可确定是目标虚拟传感器设备的开关状态发生变化,以及目标虚拟传感器设备的当前开关状态。进而,终端可以将目标虚拟传感器设备对应的目标硬件传感器的开关状态修改为与目标虚拟传感器设备的当前开关状态一致。终端可以根据传感器类型标识确定目标虚拟传感器设备对应的目标硬件传感器,目标虚拟传感器设备和目标硬件传感器的传感器类型标识一致。
在一个实施例中,目标容器内的应用程序可以通过activate接口获取指定传感器的当前开关状态,并保存至共享内存里的一个32位变量startedSensors,startedSensors中的每一位变量代表一个传感器,0表示关闭,1表示打开。参考图8,服务器上的应用程序后端可以通过虚拟传感器抽象层实时监测startedSensors里各传感器开关状态的变化。一旦监测到startedSensors发生变化,服务器上的应用程序后端会将startedSensors变量通过socket协议发送到服务器上的应用程序代理,再经由应用程序代理发送到终端,终端接收到startedSensors后,会跟前一次保存的startedSensors进行比较,根据比较结果确定各个传感器开关状态的变化,例如从0变成1,或者从1变成0,进而终端对相应的硬件传感器进行打开或者关闭。终端可以根据startedSensors确定mSensorNum和mSensors,mSensorNum为终端接收到要打开的传感器的个数,mSensors数组里保存了需要打开的传感器种类,通过Android SDK的registerListener函数打开这些传感器。在Android SDK的onSensorChanged回调函数中获取传感器数据,并且通过webrtc的数据通道发送到应用程序代理,应用程序代理会进一步把传感器数据通过socket传给应用程序后端,应用程序后端将收到的传感器数据写入共享内存中的队列,由虚拟传感器硬件抽象层从队列中读取并发送给应用程序。
本实施例中,通过生成携带当前开关状态统计列表的硬件传感器控制指令,并发送至终端,那么终端根据历史开关状态统计列表和当前开关状态统计列表的差异可以准确更新对应的目标硬件传感器的开关状态。
在一个实施例中,将传感器数据写入虚拟传感器,包括:将传感器数据写入共享内存中队列的队尾,并更新队尾标识。从虚拟传感器中读取传感器数据,包括:从队列的队首读取传感器数据,并更新队首标识。
具体地,虚拟传感器抽象层和应用程序后端通过共享内存来进行传感器数据传输,具体可以是在共享内存中创建一个用于存储传感器数据的队列,队列是按照先进先出的原则。服务器上的应用程序后端每获取到终端发送的一条传感器数据,就会写入共享内存中队列的队尾,并更新队尾指针,即更新队尾标识。目标容器内的应用程序通过传感器服务调用虚拟传感器抽象层的poll接口从共享内存中队列的队首读取相应的传感器数据,并更新队首指针,即更新队首标识。
参考图9,虚拟传感器硬件抽象层和应用程序后端,通过共享内存(/dev/shm/sensors)来进行传感器数据(sensors_event_t)传输。在共享内存里创建了一个队列,应用程序后端从终端获取到一条传感器数据,就会写入到队列的队尾(tail),并且更新tail指针:tail=(tail+1)%(Queue Length)。其中Queue Length为队列的长度。并且在共享内存里引入一个int类型变量mLastWrapCnt,记录因为tail超过head指针发生绕圈的次数。同时,虚拟传感器抽象层会从队列的队首(head)读取相应的传感器数据并且更新head指针:head=(head+1)%(Queue Length)。
本实施例中,通过队列存储传感器数据,每写入一条传感器数据就更新队尾标识,每读取一条传感器数据就更新队首标识,可以保障传感器数据写入和读取的有序性,同时,队首标识和队尾标识有助于后续快速确定和读取最新存储的传感器数据。
在一个实施例中,如图10所示,从虚拟传感器中读取传感器数据,根据传感器数据更新多媒体画面,生成对应的更新多媒体数据,包括:
步骤S1002,当写入虚拟传感器的传感器数据大于预设写入阈值时,获取预设回退阈值。
步骤S1004,根据预设回退阈值更新队首标识,得到目标队首标识。
步骤S1006,从队列中,将目标队首标识和队尾标识之间的传感器数据作为目标传感器数据。
步骤S1008,根据目标传感器数据更新多媒体画面,生成对应的更新多媒体数据。
具体地,在网络始终保持正常的情况下,传感器数据的读取速度和写入速度是基本保持一致的,这样服务器可以保持根据最新的传感器数据更新多媒体画面,从而及时响应用户针对终端的最新移动操作,在终端及时实现画面的正确切换。但是,当网络出现短暂的异常导致终端和服务器暂时断开连接时,硬件传感器实时采集的传感器数据会堆积在终端。当网络恢复正常时,终端会将堆积的传感器数据一起发送至服务器,服务器上的应用程序后端将堆积的传感器数据一起写入共享内存的队列中。那么服务器上的应用程序需要先读取旧的传感器数据,先根据旧的传感器数据更新多媒体画面,从而导致延时响应用户针对终端的最新移动操作,无法在终端及时实现画面的正确切换。当写入虚拟传感器的传感器数据大于预设写入阈值时,说明传感器数据的写入速度大于读取速度,此时服务器上的应用程序可以获取预设回退阈值,根据预设回退阈值回退队首标识,得到目标队首标识。服务器上的应用程序通过调用poll接口从队列中读取目标队首标识和队尾标识之间的传感器数据作为目标传感器数据,即从队列中读取最新写入的预设回退阈值条传感器数据,根据最新写入的目标传感器数据更新多媒体画面,生成对应的更新多媒体数据。其中,预设回退阈值可以根据实际需求自定义。
在一个实施例中,当出现head==tail的时候,有两种情况:一是队列为空,虚拟传感器硬件抽象层读取被阻塞,会进行睡眠,等待应用程序后端写入数据,通常出现在服务器刚运行应用程序的时候;另外一种情况是应用程序后端写入太快,导致tail指针超过head指针发生绕圈,这个时候应用程序后端会将mLastWrapCnt变量加1来表示绕圈次数加1。当碰到绕圈的情况,说明虚拟传感器抽象层读取速度慢于应用程序后端写入速度。终端发生网络上行抖动导致发送的传感器数据延时抖动时,就存在一定概率导致传感器数据在终端堆积几十条,然后瞬间将堆积的几十条传感器数据发送到应用程序后端,由应用程序后端写入队列,进而导致tail指针超过head指针发生绕圈。此时虚拟传感器抽象层应该读取最新写入的传感器数据。因此通过将head指针后移预设回退阈值,以使虚拟传感器抽象层读取最新写入的传感器数据,例如将head指针后移10,虚拟传感器抽象层读取最新写入的10条传感器数据,从而避免因为读取太慢,总是读取旧的传感器数据而产生画面切换延时。此外,后续新写入的数据会自动覆盖原位置存储的旧数据。
本实施例中,当传感器数据的写入速度大于读取速度时,获取预设回退阈值,根据预设回退阈值调整队首标识,可以保障快速读取到最新写入的传感器数据,从而保障及时、正确地切换画面。
在一个实施例中,根据传感器数据更新多媒体画面,生成对应的更新多媒体数据,包括:获取全景画面;多媒体画面是全景画面中与第一视角相匹配的画面,第一视角为当前观察视角;根据传感器数据调整第一视角,得到第二视角;从全景画面中确定与第二视角相匹配的画面,生成对应的多媒体视角更新数据。向终端返回更新多媒体数据,以使终端根据更新多媒体数据展示对应的更新多媒体画面,包括:向终端返回多媒体视角更新数据,以使终端根据多媒体视角更新数据将当前显示画面从第一视角对应的画面切换到第二视角对应的画面。
其中,全景画面是虚拟对象对虚拟环境进行360度观察得到的画面。多媒体画面是在开启硬件传感器后且用户改变终端在空间中的状态前,终端当前展示的画面,是虚拟对象以当前观察视角(第一视角)对虚拟环境进行观察得到的画面。例如,士兵游戏角色在当前位置面向正北方向进行观察得到的画面。多媒体视角更新数据是指视角更新后的更新多媒体画面对应的更新多媒体数据。
具体地,传感器数据携带时间戳,服务器可以在本地或从其他服务器获取该时间戳对应的全景画面。例如,当应用程序为旅游应用时,服务器可以从本地获取虚拟对象在当前时刻对景区A进行360度观察得到的全景画面。当应用程序为云游戏应用时,服务器可以从游戏服务器获取虚拟对象在当前时刻对周围游戏环境进行360度观察得到的全景画面。服务器对传感器数据进行分析,确定终端的移动方向和移动角度,根据终端的移动方向和移动角度调整第一视角,得到第二视角。服务器可以从全景画面中确定当前位置的虚拟对象以第二视角对虚拟环境进行观察得到的画面,生成对应的多媒体视角更新数据,并将多媒体视角更新数据发送至终端。终端接收到多媒体视角更新数据后,可以根据多媒体视角更新数据将当前显示画面从第一视角对应的画面切换到第二视角对应的画面。例如,根据用户在空间中旋转终端的操作,士兵游戏角色的观察视角从正北方向逐步调整到正东方向,终端将展示画面相应的从正北方向对应的画面逐步切换到正东方向对应的画面。因此,相比于传统技术中,用户需要在屏幕上进行点击或拖拽的操作才能实现终端展示画面的切换,本实施中,用户通过简单移动终端就可以实现终端展示画面的切换,简化了用户操作,提高了便利性。
参考图11,图11为画面更新方法所对应的整体架构示意图。以云游戏为例进行说明,如图11所示,云游戏服务器上运行有目标容器(Android容器),目标容器中的操作系统为Android系统。目标容器包括云游戏应用程序(Game App)、传感器管理模块(SensorManager)、传感器服务模块(Sensor Service)、虚拟传感器和云游戏后端。虚拟传感器包括虚拟传感器抽象层(Vritual Sensor HAL)和虚拟传感器设备(Vritual Sensor Device)。通过构建和硬件传感器结构对应的虚拟传感器可以确保云游戏应用程序成功启动传感器服务。云游戏服务器还包括云游戏代理。云游戏服务器和终端通过网络进行通信,云游戏服务器和游戏服务器通过网络进行通信。
1、启动云游戏
云游戏代理接收终端发送的云游戏启动指令,云游戏启动指令携带云游戏标识。云游戏服务器根据云游戏启动指令运行云游戏标识对应的目标容器,目标容器中安装有云游戏标识对应的云游戏应用程序。
2、开启虚拟传感器设备和硬件传感器
云游戏代理接收终端发送的虚拟传感器开启指令,虚拟传感器开启指令携带陀螺仪传感器的传感器类型标识。云游戏代理将虚拟传感器开启指令通过云游戏后端发送至云游戏应用程序。云游戏应用程序通过传感器管理模块调用传感器服务模块,通过传感器服务模块调用虚拟传感器抽象层提供的传感器创建函数,根据传感器创建函数生成各个传感器接口和共享内存,通过共享内存生成至少一个虚拟传感器设备,在共享内存中创建用于存储传感器数据的队列。进而,云游戏应用程序调用虚拟传感器抽象层提供的activate接口开启虚拟陀螺仪传感器设备,并通过虚拟传感器抽象层将虚拟陀螺仪传感器设备的开启状态保存至共享内存中的32位变量startedSensors里,其中每一位代表一个传感器,0表示关闭,1表示打开。云游戏后端监测到startedSensors发送变化,将startedSensors变量通过socket发送到云游戏代理,再经由云游戏代理发送到终端。终端接收到该startedSensors后,会跟前一次保存的startedSensors进行比较,根据比较结果将对应的硬件陀螺仪传感器进行打开。
3、传输传感器数据
终端上的硬件陀螺仪传感器采集由于用户改变终端在空间中的状态而产生的传感器数据。云游戏后端通过云游戏代理从终端获取到每一条传感器数据都会按照时间顺序依次写入到共享内存中队列的队尾(tail),并且更新tail指针:tail=(tail+1)%(QueueLength)。其中Queue Length为队列的长度。并且在共享内存里引入一个int类型变量mLastWrapCnt,记录因为tail超过head指针发生绕圈的次数。云游戏应用程序通过调用虚拟传感器抽象层提供的poll接口从队列的队首(head)读取传感器数据,并更新head指针:head=(head+1)%(Queue Length)。当根据tail指针、head指针和mLastWrapCnt判断发送绕圈时,云游戏应用程序将head指针后移预设回退阈值,以使云游戏应用程序能够读取到最新写入的预设回退阈值条传感器数据。
4、切换视角和画面
云游戏应用程序从游戏服务器获取全景画面和当前观察视角(第一视角)对应的多媒体画面,根据读取的传感器数据调整第一视角,得到第二视角,从全景画面中确定第一视角对应的更新多媒体画面,将更新多媒体画面发送至云游戏后端。云游戏后端对更新多媒体画面进行编码得到对应的更新多媒体数据,将更新多媒体数据发送至云游戏代理。云游戏代理将更新多媒体数据发送至终端。终端接收到更新多媒体数据后,解码展示对应的更新多媒体画面。
参考图12,用户手持终端1200,终端1200显示有射击类游戏的游戏画面。用户已经在游戏配置界面中开启陀螺仪传感器。在用户改变终端在空间中的状态前,该终端显示有多媒体画面1210。多媒体画面1210是虚拟对象1211以第一视角观察虚拟环境的游戏画面,多媒体画面1210中包括目标对象1212。当用户改变终端在空间的状态时,例如控制终端旋转一定角度时,终端1200将画面从多媒体画面1210切换到更新多媒体画面1220。更新多媒体画面1220是虚拟对象1211以第二视角观察虚拟环境的游戏画面,多媒体画面1210中包括目标对象1212。由于虚拟对象1211的观察视角发生变化,因此目标对象1212在游戏画面中的显示位置也相应的发生变化。
在一个实施例中,如图13所示,提供了一种画面更新方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
步骤S1302,获取本地的硬件传感器采集的传感器数据。
具体地,终端上可以运行应用客户端,应用客户端可以展示服务器当前支持安装和运行的应用列表。终端可以接收用户作用于应用列表中任意一个应用程序的触发操作,根据该触发操作生成应用启动指令,应用启动指令用于指示服务器运行部署有该应用程序的空闲容器。那么终端就可以展示服务器发送过来的该应用程序对应的应用画面。终端可以根据用户在应用画面中针对传感器配置的触发操作生成虚拟传感器开启指令,将虚拟传感器开启指令发送至服务器,虚拟传感器开启指令携带传感器类型标识。服务器接收到虚拟传感器开启指令后,可以开启该传感器类型标识对应的虚拟传感器设备,生成对应的硬件传感器开启指令,硬件传感器开启指令携带该传感器类型标识。终端接收到硬件传感器开启指令后,可以开启该传感器类型标识对应的硬件传感器。当用户改变终端在空间中的状态时,硬件传感器就可以采集相应的传感器数据。
步骤S1304,将传感器数据发送至服务器,以使服务器通过应用程序后端将传感器数据写入虚拟传感器,通过应用程序从虚拟传感器中读取传感器数据,根据传感器数据更新多媒体画面,通过应用程序后端根据更新后的多媒体画面生成对应的更新多媒体数据;虚拟传感器与硬件传感器的结构对应,用于支持传感器服务。
具体地,终端可以将传感器数据发送至服务器。服务器中预先构建有与硬件传感器结构对应的虚拟传感器,虚拟传感器可以辅助服务器启动传感器服务。服务器还包括应用程序和应用程序后端。服务器接收到传感器数据后,可以通过应用程序后端将传感器数据写入虚拟传感器,将传感器数据缓存在虚拟传感器中。服务器中的应用程序可以调用传感器服务从虚拟传感器中读取传感器数据,根据传感器数据确定视角调整数据,根据视角调整数据更新当前观察视角对应的多媒体画面。服务器中的应用程序将更新后的多媒体画面发送至服务器中的应用程序后端,由应用程序后端根据更新后的多媒体画面生成目标观察视角对应的更新多媒体数据。目标观察视角是根据视角调整数据调整当前观察视角得到的。
步骤S1306,接收服务器返回的更新多媒体数据。
步骤S1308,根据更新多媒体数据展示对应的更新多媒体画面。
具体地,终端可以接收服务器返回的更新多媒体数据,根据更新多媒体数据展示对应的更新多媒体画面。这样,根据由于用户改变终端在空间中的状态产生的传感器数据就可以实现视角调整,在终端展示视角调整后的应用画面。
上述画面更新方法中,通过获取本地的硬件传感器采集的传感器数据,将传感器数据发送至服务器,以使服务器通过应用程序后端将传感器数据写入虚拟传感器,通过应用程序从虚拟传感器中读取传感器数据,根据传感器数据更新多媒体画面,通过应用程序后端根据更新后的多媒体画面生成对应的更新多媒体数据;虚拟传感器与硬件传感器的结构对应,用于支持传感器服务,接收服务器返回的更新多媒体数据,根据更新多媒体数据展示对应的更新多媒体画面。这样,预先在服务器中构建与硬件传感器结构相对应的虚拟传感器,虚拟传感器可以用于存储传感器数据和支持传感器服务,那么在应用程序运行在云端服务器的场景下,服务器即使没有硬件传感器,也可以利用虚拟传感器启动传感器服务以控制终端的硬件传感器,服务器可以从虚拟传感器中读取根据用户操作触发、通过硬件传感器采集、并由终端发送过来的传感器数据,根据传感器数据更新多媒体画面,生成对应的更新多媒体数据,终端接收到更新多媒体数据后,可以展示更新多媒体数据对应的多媒体画面,最终实现在该场景下也可以通过硬件传感器检测用户针对终端的操作来更新应用程序在终端的显示画面。
应该理解的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图14所示,提供了一种画面更新装置,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:传感器数据接收模块1402、传感器数据写入模块1404、多媒体数据生成模块1406和多媒体数据发送模块1408,其中:
传感器数据接收模块1402,用于接收终端发送的传感器数据;传感器数据是通过终端的硬件传感器采集的;
传感器数据写入模块1404,用于将传感器数据写入虚拟传感器;虚拟传感器与硬件传感器的结构对应,用于支持传感器服务;
多媒体数据生成模块1406,用于从虚拟传感器中读取传感器数据,根据传感器数据更新多媒体画面,生成对应的更新多媒体数据;
多媒体数据发送模块1408,用于向终端返回更新多媒体数据,以使终端根据更新多媒体数据展示对应的更新多媒体画面。
在一个实施例中,画面更新装置还包括:
指令接收模块,用于接收终端发送的应用启动指令;应用启动指令携带终端的终端标识和应用标识;
指令处理模块,用于根据应用启动指令,从空闲容器池中获取应用标识对应的目标容器,启动目标容器,将目标容器和终端标识进行关联。
在一个实施例中,传感器数据携带所述终端标识,传感器数据接收模块还用于通过应用程序代理接收终端发送的传感器数据,根据终端标识将传感器数据输入目标容器;目标容器包括应用程序、传感器服务模块、虚拟传感器和应用程序后端,传感器服务模块用于提供传感器服务;应用程序后端用于接收应用程序代理输入的传感器数据,将传感器数据写入虚拟传感器;应用程序用于调用传感器服务模块从虚拟传感器中读取传感器数据,根据传感器数据更新多媒体画面,将更新后的多媒体画面发送至应用程序后端;应用程序后端还用于根据更新后的多媒体画面生成对应的更新多媒体数据,将更新多媒体数据通过所述应用程序代理发送至终端。
在一个实施例中,虚拟传感器包括虚拟传感器抽象层和共享内存,所述虚拟传感器抽象层用于提供虚拟传感器列表和传感器接口,所述共享内存用于生成虚拟传感器设备。
在一个实施例中,指令接收模块还用于接收终端发送的虚拟传感器控制指令;虚拟传感器控制指令携带传感器类型标识。指令处理模块还用于根据虚拟传感器控制指令,通过虚拟传感器抽象层更新传感器类型标识对应的目标虚拟传感器设备的开关状态,得到目标虚拟传感器设备的当前开关状态;根据目标虚拟传感器设备的当前开关状态生成硬件传感器控制指令,向终端返回硬件传感器控制指令,以使终端根据当前开关状态对目标虚拟传感器设备对应的目标硬件传感器进行开关状态同步。
在一个实施例中,指令处理模块还用于根据虚拟传感器控制指令,通过传感器服务调用虚拟传感器抽象层中的传感器创建函数;根据传感器创建函数生成传感器接口和共享内存。
在一个实施例中,指令处理模块还用于当虚拟传感器列表包括传感器类型标识时,通过传感器服务调用传感器接口更新目标虚拟传感器设备的开关状态,得到目标虚拟传感器设备的当前开关状态;将目标虚拟传感器设备的当前开关状态写入共享内存中的当前开关状态统计列表,当前开关状态统计列表包括多个虚拟传感器设备的当前开关状态。
在一个实施例中,指令处理模块还用于从共享内存中读取当前开关状态统计列表,生成对应的硬件传感器控制指令;硬件传感器控制指令携带当前开关状态统计列表;向终端返回硬件传感器控制指令,以使终端根据硬件传感器控制指令获取历史开关状态统计列表,根据历史开关状态统计列表和当前开关状态统计列表的差异更新对应的目标硬件传感器的开关状态。
在一个实施例中,传感器数据写入模块还用于将传感器数据写入共享内存中队列的队尾,并更新队尾标识。多媒体数据生成模块还用于从队列的队首读取传感器数据,并更新队首标识。
在一个实施例中,多媒体数据生成模块还用于当写入虚拟传感器的传感器数据大于预设写入阈值时,获取预设回退阈值;根据预设回退阈值更新队首标识,得到目标队首标识;从队列中,将目标队首标识和队尾标识之间的传感器数据作为目标传感器数据;根据目标传感器数据更新多媒体画面,生成对应的更新多媒体数据。
在一个实施例中,多媒体数据生成模块还用于获取全景画面;多媒体画面是全景画面中与第一视角相匹配的画面,第一视角为当前观察视角;根据传感器数据调整第一视角,得到第二视角;从全景画面中确定与第二视角相匹配的画面,生成对应的多媒体视角更新数据。多媒体数据发送模块还用于向终端返回多媒体视角更新数据,以使终端根据多媒体视角更新数据将当前显示画面从第一视角对应的画面切换到第二视角对应的画面。
在一个实施例中,如图15所示,提供了一种画面更新装置,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:传感器数据获取模块1502、传感器数据发送模块1504、多媒体数据接收模块1506和多媒体画面展示模块1508,其中:
传感器数据获取模块1502,用于获取本地的硬件传感器采集的传感器数据;
传感器数据发送模块1504,用于将传感器数据发送至服务器,以使服务器通过应用程序后端将传感器数据写入虚拟传感器,通过应用程序从虚拟传感器中读取传感器数据,根据传感器数据更新多媒体画面,通过应用程序后端根据更新后的多媒体画面生成对应的更新多媒体数据;虚拟传感器与硬件传感器的结构对应,用于支持传感器服务;
多媒体数据接收模块1506,用于接收服务器返回的更新多媒体数据;
多媒体画面展示模块1508,用于根据更新多媒体数据展示对应的更新多媒体画面。
关于画面更新装置的具体限定可以参见上文中对于画面更新方法的限定,在此不再赘述。上述画面更新装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图16所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储多个容器、传感器数据等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种画面更新方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图17所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种画面更新方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图16、17中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (26)

1.一种画面更新方法,其特征在于,所述方法包括:
接收终端发送的虚拟传感器控制指令;所述虚拟传感器控制指令携带传感器类型标识;
根据所述虚拟传感器控制指令,更新所述传感器类型标识对应的目标虚拟传感器设备的开关状态,得到所述目标虚拟传感器设备的当前开关状态;
根据所述目标虚拟传感器设备的当前开关状态生成硬件传感器控制指令,向所述终端返回所述硬件传感器控制指令,以使所述终端根据所述当前开关状态对所述目标虚拟传感器设备对应的目标硬件传感器进行开关状态同步;
接收所述终端发送的传感器数据;所述传感器数据是通过所述终端的硬件传感器采集的,所述硬件传感器的开关状态为开启状态;
将所述传感器数据写入虚拟传感器;所述虚拟传感器与硬件传感器的结构对应,用于支持传感器服务,所述虚拟传感器包括共享内存,所述共享内存用于生成虚拟传感器设备;
从所述虚拟传感器中读取所述传感器数据,根据所述传感器数据更新多媒体画面,生成对应的更新多媒体数据;
向所述终端返回所述更新多媒体数据,以使所述终端根据所述更新多媒体数据展示对应的更新多媒体画面。
2.根据权利要求1所述的方法,其特征在于,所述接收所述终端发送的传感器数据之前,所述方法还包括:
接收所述终端发送的应用启动指令;所述应用启动指令携带所述终端的终端标识和应用标识;
根据所述应用启动指令,从空闲容器池中获取所述应用标识对应的目标容器,启动所述目标容器,将所述目标容器和所述终端标识进行关联。
3.根据权利要求2所述的方法,其特征在于,所述传感器数据携带所述终端标识,所述接收所述终端发送的传感器数据,包括:
通过应用程序代理接收所述终端发送的传感器数据,根据所述终端标识将所述传感器数据输入所述目标容器;所述目标容器包括所述应用标识对应的应用程序、传感器服务模块、虚拟传感器和应用程序后端,所述传感器服务模块用于提供所述传感器服务;
所述应用程序后端用于接收所述应用程序代理输入的所述传感器数据,将所述传感器数据写入所述虚拟传感器;
所述应用程序用于调用所述传感器服务模块从所述虚拟传感器中读取所述传感器数据,根据所述传感器数据更新多媒体画面,将更新后的多媒体画面发送至应用程序后端;
所述应用程序后端还用于根据更新后的多媒体画面生成对应的所述更新多媒体数据,将所述更新多媒体数据通过所述应用程序代理发送至所述终端。
4.根据权利要求1所述的方法,其特征在于,所述虚拟传感器还包括虚拟传感器抽象层,所述虚拟传感器抽象层用于提供虚拟传感器列表和传感器接口。
5.根据权利要求4所述的方法,其特征在于,所述根据所述虚拟传感器控制指令,更新所述传感器类型标识对应的目标虚拟传感器设备的开关状态,得到所述目标虚拟传感器设备的当前开关状态,包括:
根据所述虚拟传感器控制指令,通过所述虚拟传感器抽象层更新所述传感器类型标识对应的目标虚拟传感器设备的开关状态,得到所述目标虚拟传感器设备的当前开关状态。
6.根据权利要求4所述的方法,其特征在于,所述接收终端发送的虚拟传感器控制指令之后,所述方法还包括:
根据所述虚拟传感器控制指令,通过所述传感器服务调用所述虚拟传感器抽象层中的传感器创建函数;
根据所述传感器创建函数生成所述传感器接口和共享内存。
7.根据权利要求5所述的方法,其特征在于,所述根据所述虚拟传感器控制指令,通过所述虚拟传感器抽象层更新所述传感器类型标识对应的目标虚拟传感器设备的开关状态,得到所述目标虚拟传感器设备的当前开关状态,包括:
当所述虚拟传感器列表包括所述传感器类型标识时,通过所述传感器服务调用所述传感器接口更新所述目标虚拟传感器设备的开关状态,得到所述目标虚拟传感器设备的当前开关状态;
将所述目标虚拟传感器设备的当前开关状态写入所述共享内存中的当前开关状态统计列表,所述当前开关状态统计列表包括多个虚拟传感器设备的当前开关状态。
8.根据权利要求7所述的方法,其特征在于,所述根据所述目标虚拟传感器设备的当前开关状态生成硬件传感器控制指令,向所述终端返回所述硬件传感器控制指令,以使所述终端根据所述当前开关状态对所述目标虚拟传感器设备对应的目标硬件传感器进行开关状态同步,包括:
从所述共享内存中读取当前开关状态统计列表,生成对应的硬件传感器控制指令;所述硬件传感器控制指令携带所述当前开关状态统计列表;
向所述终端返回所述硬件传感器控制指令,以使所述终端根据所述硬件传感器控制指令获取历史开关状态统计列表,根据所述历史开关状态统计列表和所述当前开关状态统计列表的差异更新对应的目标硬件传感器的开关状态。
9.根据权利要求1所述的方法,其特征在于,所述将所述传感器数据写入虚拟传感器,包括:
将所述传感器数据写入所述共享内存中队列的队尾,并更新队尾标识;
所述从所述虚拟传感器中读取所述传感器数据,包括:
从所述队列的队首读取传感器数据,并更新队首标识。
10.根据权利要求9所述的方法,其特征在于,所述从所述虚拟传感器中读取所述传感器数据,根据所述传感器数据更新多媒体画面,生成对应的更新多媒体数据,包括:
当写入虚拟传感器的传感器数据大于预设写入阈值时,获取预设回退阈值;
根据所述预设回退阈值更新所述队首标识,得到目标队首标识;
从所述队列中,将所述目标队首标识和所述队尾标识之间的传感器数据作为目标传感器数据;
根据所述目标传感器数据更新多媒体画面,生成对应的更新多媒体数据。
11.根据权利要求1所述的方法,其特征在于,所述根据所述传感器数据更新多媒体画面,生成对应的更新多媒体数据,包括:
获取全景画面;所述多媒体画面是所述全景画面中与第一视角相匹配的画面,所述第一视角为当前观察视角;
根据所述传感器数据调整所述第一视角,得到第二视角;
从所述全景画面中确定与所述第二视角相匹配的画面,生成对应的多媒体视角更新数据;
向所述终端返回所述更新多媒体数据,以使所述终端根据所述更新多媒体数据展示对应的更新多媒体画面,包括:
向所述终端返回所述多媒体视角更新数据,以使所述终端根据所述多媒体视角更新数据将当前显示画面从第一视角对应的画面切换到第二视角对应的画面。
12.一种画面更新方法,其特征在于,所述方法包括:
获取虚拟传感器控制指令,并发送至服务器,以使所述服务器根据所述虚拟传感器控制指令,更新所述传感器类型标识对应的目标虚拟传感器设备的开关状态,得到所述目标虚拟传感器设备的当前开关状态,根据所述目标虚拟传感器设备的当前开关状态生成硬件传感器控制指令;所述虚拟传感器控制指令携带传感器类型标识;
接收所述服务器返回的所述硬件传感器控制指令,根据所述当前开关状态对所述目标虚拟传感器设备对应的目标硬件传感器进行开关状态同步;
获取本地的硬件传感器采集的传感器数据,所述硬件传感器的开关状态为开启状态;
将所述传感器数据发送至所述服务器,以使所述服务器通过应用程序后端将所述传感器数据写入虚拟传感器,通过应用程序从所述虚拟传感器中读取所述传感器数据,根据所述传感器数据更新多媒体画面,通过所述应用程序后端根据更新后的多媒体画面生成对应的更新多媒体数据;所述虚拟传感器与硬件传感器的结构对应,用于支持传感器服务,所述虚拟传感器包括共享内存,所述共享内存用于生成虚拟传感器设备;
接收所述服务器返回的所述更新多媒体数据;
根据所述更新多媒体数据展示对应的更新多媒体画面。
13.一种画面更新装置,其特征在于,所述装置包括:
指令接收模块,用于接收终端发送的虚拟传感器控制指令;所述虚拟传感器控制指令携带传感器类型标识;
指令处理模块,用于根据所述虚拟传感器控制指令,更新所述传感器类型标识对应的目标虚拟传感器设备的开关状态,得到所述目标虚拟传感器设备的当前开关状态,根据所述目标虚拟传感器设备的当前开关状态生成硬件传感器控制指令,向所述终端返回所述硬件传感器控制指令,以使所述终端根据所述当前开关状态对所述目标虚拟传感器设备对应的目标硬件传感器进行开关状态同步;
传感器数据接收模块,用于接收所述终端发送的传感器数据;所述传感器数据是通过所述终端的硬件传感器采集的,所述硬件传感器的开关状态为开启状态;
传感器数据写入模块,用于将所述传感器数据写入虚拟传感器;所述虚拟传感器与硬件传感器的结构对应,用于支持传感器服务,所述虚拟传感器包括共享内存,所述共享内存用于生成虚拟传感器设备;
多媒体数据生成模块,用于从所述虚拟传感器中读取所述传感器数据,根据所述传感器数据更新多媒体画面,生成对应的更新多媒体数据;
多媒体数据发送模块,用于向所述终端返回所述更新多媒体数据,以使所述终端根据所述更新多媒体数据展示对应的更新多媒体画面。
14.根据权利要求13所述的装置,其特征在于,所述指令接收模块还用于接收所述终端发送的应用启动指令;所述应用启动指令携带所述终端的终端标识和应用标识,所述指令处理模块还用于根据所述应用启动指令,从空闲容器池中获取所述应用标识对应的目标容器,启动所述目标容器,将所述目标容器和所述终端标识进行关联。
15.根据权利要求14所述的装置,其特征在于,所述传感器数据携带所述终端标识,所述传感器数据接收模块还用于通过应用程序代理接收所述终端发送的传感器数据,根据所述终端标识将所述传感器数据输入所述目标容器;所述目标容器包括所述应用标识对应的应用程序、传感器服务模块、虚拟传感器和应用程序后端;所述传感器服务模块用于提供所述传感器服务;所述应用程序后端用于接收所述应用程序代理输入的所述传感器数据,将所述传感器数据写入所述虚拟传感器;所述应用程序用于调用所述传感器服务模块从所述虚拟传感器中读取所述传感器数据,根据所述传感器数据更新多媒体画面,将更新后的多媒体画面发送至应用程序后端;所述应用程序后端还用于根据更新后的多媒体画面生成对应的所述更新多媒体数据,将所述更新多媒体数据通过所述应用程序代理发送至所述终端。
16.根据权利要求13所述的装置,其特征在于,所述虚拟传感器还包括虚拟传感器抽象层,所述虚拟传感器抽象层用于提供虚拟传感器列表和传感器接口。
17.根据权利要求16所述的装置,其特征在于,所述指令处理模块还用于根据所述虚拟传感器控制指令,通过所述虚拟传感器抽象层更新所述传感器类型标识对应的目标虚拟传感器设备的开关状态,得到所述目标虚拟传感器设备的当前开关状态。
18.根据权利要求16所述的装置,其特征在于,所述指令处理模块还用于根据所述虚拟传感器控制指令,通过所述传感器服务调用所述虚拟传感器抽象层中的传感器创建函数,根据所述传感器创建函数生成所述传感器接口和共享内存。
19.根据权利要求17所述的装置,其特征在于,所述指令处理模块还用于当所述虚拟传感器列表包括所述传感器类型标识时,通过所述传感器服务调用所述传感器接口更新所述目标虚拟传感器设备的开关状态,得到所述目标虚拟传感器设备的当前开关状态,将所述目标虚拟传感器设备的当前开关状态写入所述共享内存中的当前开关状态统计列表,所述当前开关状态统计列表包括多个虚拟传感器设备的当前开关状态。
20.根据权利要求19所述的装置,其特征在于,所述指令处理模块还用于从所述共享内存中读取当前开关状态统计列表,生成对应的硬件传感器控制指令,所述硬件传感器控制指令携带所述当前开关状态统计列表,向所述终端返回所述硬件传感器控制指令,以使所述终端根据所述硬件传感器控制指令获取历史开关状态统计列表,根据所述历史开关状态统计列表和所述当前开关状态统计列表的差异更新对应的目标硬件传感器的开关状态。
21.根据权利要求13所述的装置,其特征在于,所述传感器数据写入模块还用于将所述传感器数据写入所述共享内存中队列的队尾,并更新队尾标识;所述多媒体数据生成模块还用于从所述队列的队首读取传感器数据,并更新队首标识。
22.根据权利要求21所述的装置,其特征在于,所述多媒体数据生成模块还用于当写入虚拟传感器的传感器数据大于预设写入阈值时,获取预设回退阈值,根据所述预设回退阈值更新所述队首标识,得到目标队首标识,从所述队列中,将所述目标队首标识和所述队尾标识之间的传感器数据作为目标传感器数据,根据所述目标传感器数据更新多媒体画面,生成对应的更新多媒体数据。
23.根据权利要求13所述的装置,其特征在于,所述多媒体数据生成模块还用于获取全景画面,所述多媒体画面是所述全景画面中与第一视角相匹配的画面,所述第一视角为当前观察视角,根据所述传感器数据调整所述第一视角,得到第二视角,从所述全景画面中确定与所述第二视角相匹配的画面,生成对应的多媒体视角更新数据;所述多媒体数据发送模块还用于向所述终端返回所述多媒体视角更新数据,以使所述终端根据所述多媒体视角更新数据将当前显示画面从第一视角对应的画面切换到第二视角对应的画面。
24.一种画面更新装置,其特征在于,所述装置包括:
指令获取模块,用于获取虚拟传感器控制指令,并发送至服务器,以使所述服务器根据所述虚拟传感器控制指令,更新所述传感器类型标识对应的目标虚拟传感器设备的开关状态,得到所述目标虚拟传感器设备的当前开关状态,根据所述目标虚拟传感器设备的当前开关状态生成硬件传感器控制指令;所述虚拟传感器控制指令携带传感器类型标识;
指令接收模块,用于接收所述服务器返回的所述硬件传感器控制指令,根据所述当前开关状态对所述目标虚拟传感器设备对应的目标硬件传感器进行开关状态同步;
传感器数据获取模块,用于获取本地的硬件传感器采集的传感器数据,所述硬件传感器的开关状态为开启状态;
传感器数据发送模块,用于将所述传感器数据发送至所述服务器,以使所述服务器通过应用程序后端将所述传感器数据写入虚拟传感器,通过应用程序从所述虚拟传感器中读取所述传感器数据,根据所述传感器数据更新多媒体画面,通过所述应用程序后端根据更新后的多媒体画面生成对应的更新多媒体数据;所述虚拟传感器与硬件传感器的结构对应,用于支持传感器服务,所述虚拟传感器包括共享内存,所述共享内存用于生成虚拟传感器设备;
多媒体数据接收模块,用于接收所述服务器返回的所述更新多媒体数据;
多媒体画面展示模块,用于根据所述更新多媒体数据展示对应的更新多媒体画面。
25.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至11或12中任一项所述的方法的步骤。
26.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至11或12中任一项所述的方法的步骤。
CN202010731481.9A 2020-07-27 2020-07-27 画面更新方法、装置、计算机设备和存储介质 Active CN111744189B (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN202010731481.9A CN111744189B (zh) 2020-07-27 2020-07-27 画面更新方法、装置、计算机设备和存储介质
JP2022549018A JP2023513915A (ja) 2020-07-27 2021-06-16 画面更新方法、装置、コンピュータデバイス及びコンピュータプログラム
KR1020227017512A KR20220083828A (ko) 2020-07-27 2021-06-16 이미지 업데이트 방법 및 장치, 컴퓨터 디바이스, 및 저장 매체
EP21849984.6A EP4043081A4 (en) 2020-07-27 2021-06-16 IMAGE UPDATING METHOD AND APPARATUS, COMPUTER DEVICE AND RECORDING MEDIA
PCT/CN2021/100301 WO2022022132A1 (zh) 2020-07-27 2021-06-16 画面更新方法、装置、计算机设备和存储介质
US17/732,386 US20220249945A1 (en) 2020-07-27 2022-04-28 Picture update method and apparatus, computer device, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010731481.9A CN111744189B (zh) 2020-07-27 2020-07-27 画面更新方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN111744189A CN111744189A (zh) 2020-10-09
CN111744189B true CN111744189B (zh) 2022-02-01

Family

ID=72712271

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010731481.9A Active CN111744189B (zh) 2020-07-27 2020-07-27 画面更新方法、装置、计算机设备和存储介质

Country Status (6)

Country Link
US (1) US20220249945A1 (zh)
EP (1) EP4043081A4 (zh)
JP (1) JP2023513915A (zh)
KR (1) KR20220083828A (zh)
CN (1) CN111744189B (zh)
WO (1) WO2022022132A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111744189B (zh) * 2020-07-27 2022-02-01 腾讯科技(深圳)有限公司 画面更新方法、装置、计算机设备和存储介质
CN112099925B (zh) * 2020-11-23 2021-02-05 江苏北弓智能科技有限公司 云手机Android容器操作系统的硬件传感器共享方法及系统
CN116233520B (zh) * 2023-05-06 2023-07-25 海马云(天津)信息技术有限公司 传递和获取视频数据的方法及装置、服务器设备和存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100138827A (ko) * 2009-06-25 2010-12-31 삼성전자주식회사 가상 세계 처리 장치 및 방법
WO2012053272A1 (ja) * 2010-10-19 2012-04-26 株式会社ソニー・コンピュータエンタテインメント 情報処理システム、情報処理方法、情報処理プログラム、情報処理プログラムを記憶したコンピュータ読み取り可能な記録媒体
CN107577542A (zh) * 2017-09-13 2018-01-12 广东欧珀移动通信有限公司 日志信息上报方法、装置、存储介质及移动终端
CN107621999A (zh) * 2017-09-13 2018-01-23 广东欧珀移动通信有限公司 日志信息上报方法、装置、存储介质及移动终端
CN110300909A (zh) * 2016-12-05 2019-10-01 凯斯西储大学 用于显示交互式增强现实展示的系统、方法和介质
CN110585699A (zh) * 2019-09-11 2019-12-20 腾讯科技(深圳)有限公司 云游戏的控制方法、装置、设备及存储介质
CN111111163A (zh) * 2019-12-24 2020-05-08 腾讯科技(深圳)有限公司 管理计算资源的方法、设备和电子设备
CN111309445A (zh) * 2020-03-09 2020-06-19 腾讯科技(深圳)有限公司 程序运行方法和装置及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101890237A (zh) * 2010-07-16 2010-11-24 叶尔肯·拜山 游戏控制器及其控制方法
US10073516B2 (en) * 2014-12-29 2018-09-11 Sony Interactive Entertainment Inc. Methods and systems for user interaction within virtual reality scene using head mounted display
WO2018063163A1 (en) * 2016-09-27 2018-04-05 Google Llc Selective simulation of virtualized hardware inputs
CN111744189B (zh) * 2020-07-27 2022-02-01 腾讯科技(深圳)有限公司 画面更新方法、装置、计算机设备和存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100138827A (ko) * 2009-06-25 2010-12-31 삼성전자주식회사 가상 세계 처리 장치 및 방법
WO2012053272A1 (ja) * 2010-10-19 2012-04-26 株式会社ソニー・コンピュータエンタテインメント 情報処理システム、情報処理方法、情報処理プログラム、情報処理プログラムを記憶したコンピュータ読み取り可能な記録媒体
CN110300909A (zh) * 2016-12-05 2019-10-01 凯斯西储大学 用于显示交互式增强现实展示的系统、方法和介质
CN107577542A (zh) * 2017-09-13 2018-01-12 广东欧珀移动通信有限公司 日志信息上报方法、装置、存储介质及移动终端
CN107621999A (zh) * 2017-09-13 2018-01-23 广东欧珀移动通信有限公司 日志信息上报方法、装置、存储介质及移动终端
CN110585699A (zh) * 2019-09-11 2019-12-20 腾讯科技(深圳)有限公司 云游戏的控制方法、装置、设备及存储介质
CN111111163A (zh) * 2019-12-24 2020-05-08 腾讯科技(深圳)有限公司 管理计算资源的方法、设备和电子设备
CN111309445A (zh) * 2020-03-09 2020-06-19 腾讯科技(深圳)有限公司 程序运行方法和装置及存储介质

Also Published As

Publication number Publication date
JP2023513915A (ja) 2023-04-04
WO2022022132A1 (zh) 2022-02-03
US20220249945A1 (en) 2022-08-11
EP4043081A4 (en) 2023-01-11
EP4043081A1 (en) 2022-08-17
CN111744189A (zh) 2020-10-09
KR20220083828A (ko) 2022-06-20

Similar Documents

Publication Publication Date Title
CN111744189B (zh) 画面更新方法、装置、计算机设备和存储介质
AU2019233201B2 (en) Resource configuration method and apparatus, terminal, and storage medium
CN108235086B (zh) 视频播放控制方法、装置及相应的终端
US10824449B2 (en) Application running method and device
KR20220158800A (ko) 컨텐츠 공유 방법 및 전자 장비
WO2015070754A1 (zh) 视频处理方法和相关设备及通信系统
CN111770379A (zh) 一种视频投放方法、装置及设备
CN109194972B (zh) 直播流获取方法、装置、计算机设备及存储介质
CN114443269B (zh) 帧率调节方法和相关装置
CN111010511B (zh) 全景分身图像拍摄方法及电子设备
CN111416996B (zh) 多媒体文件检测方法、播放方法、装置、设备及存储介质
CN113069760A (zh) 资源分配方法、装置、计算设备及计算机可读存储介质
CN109302636B (zh) 提供数据对象全景图信息的方法及装置
CN111026477B (zh) 一种显示方法及电子设备
CN111083009B (zh) 一种抓包方法、装置和移动终端
CN113144622A (zh) 节点切换方法、装置、设备及计算机可读存储介质
CN109614042B (zh) 一种存储日志信息的方法及终端设备
CN111935255A (zh) 一种信息处理方法、装置及存储介质
US11704135B2 (en) Automated scaling of application features based on rules
CN112188268B (zh) 虚拟场景展示方法、虚拟场景的介绍视频生成方法及装置
CN114071224A (zh) 视频数据处理方法、装置、计算机设备及存储介质
CN110519319B (zh) 一种分裂分区的方法及装置
US9954718B1 (en) Remote execution of applications over a dispersed network
EP2709332A2 (en) Method, apparatus and system for online application processing
CN112261099B (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: 40030693

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant