一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于云手机的媒体数据处理方法以及终端设备与流程

2021-11-20 04:13:00 来源:中国专利 TAG:


1.本技术涉及云技术领域,尤其涉及一种基于云手机的媒体数据处理方法以及终端设备。


背景技术:

2.云手机在运行云应用过程中,会将媒体数据通过网络发送至个人电脑的浏览器,个人电脑的浏览器内安装有flash插件,flash插件用于对媒体数据进行处理,产生音频和视频,以在浏览器中向用户呈现云应用的画面和声音。
3.flash插件需安装于个人电脑的浏览器中,且flash插件只支持个人电脑的操作系统,不适用于手机的操作系统。


技术实现要素:

4.本技术提供了一种基于云手机的媒体数据处理方法以及终端设备,通过在终端设备的浏览器中加载脚本实现对云手机发送的云应用的媒体数据的解码,无需受限于个人电脑,可实现跨平台的云手机应用音视频展示。
5.第一方面,提供了一种基于云手机的媒体数据处理方法,所述方法应用于终端设备,所述终端设备包括浏览器和处理器,所述浏览器加载有脚本,所述处理器运行所述脚本以执行以下步骤:
6.接收云手机发送的第一媒体数据,所述第一媒体数据在所述云手机运行云应用时产生;
7.对所述第一媒体数据进行解码,以获取第一音频和第一视频;
8.在所述浏览器中播放所述第一音频和第一视频;
9.接收用户在所述浏览器输入的针对所述云应用的操作命令,将所述操作命令发送至所述云手机。
10.在上述方案中,通过在终端设备的浏览器中加载脚本实现对云手机发送的应用的媒体数据的解码,无需受限于个人电脑,可实现跨平台的云手机应用音视频展示。
11.在一些可能的设计中,在将所述操作命令发送至所述云手机之后,所述处理器运行所述脚本以执行以下步骤:
12.接收所述云手机发送的第二媒体数据,所述第二媒体数据是所述云手机根据所述操作命令运行所述云应用时产生;
13.对所述第二媒体数据进行解码,以获取第二音频和第二视频;
14.在所述浏览器中播放所述第二音频和第二视频。
15.在上述方案中,用户在终端设备上的操作命令也将会被发送到云手机上进行运行,云手机产生的媒体数据再通过在终端设备的浏览器中加载脚本进行解码,能够进一步减少终端设备的资源消耗,同时也无需受限于个人电脑,可实现跨平台的云手机应用音视频展示。
16.在一些可能的设计中,所述处理器运行所述脚本以产生第一浏览器线程、第二浏览器线程以及第三浏览器线程;
17.所述处理器的第一处理核运行所述第一浏览器线程以接收所述第一媒体数据;
18.所述处理器的第二处理核运行所述第三浏览器线程以对所述第一媒体数据进行解码,获取第一音频和第一视频;
19.所述处理器的第一处理核运行所述第二浏览器线程以在所述浏览器中播放所述第一音频和第一视频;并接收用户在所述浏览器输入的针对所述游戏的操作命令,将所述操作命令发送至所述云手机。
20.在上述方案中,用于进行解码的第三浏览器线程可以单独占用第二处理核,从而提高解码的速度。
21.在一些可能的设计中,对所述第一媒体数据进行解码包括:
22.在媒体消费队列中的媒体数据的数据量小于阈值时,所述处理器的第二处理核运行所述第三浏览器线程以强制对所述第一媒体数据进行解码,其中,所述媒体消费队列用于存储所述第一媒体数据。
23.在上述方案中,第三浏览器线程可以在媒体消费队列中的媒体数据的数据量小于阈值时就强制对所述第一媒体数据进行解码,而无需慢慢等待媒体消费队列中的媒体数据的数据量大于或者等于阈值时才进行解码,加快了第三浏览器线程解码的过程,有效地减少时延。
24.在一些可能的设计中,对所述第一媒体数据进行解码包括:
25.在媒体消费队列中的媒体数据的数据量小于阈值时,所述处理器的第二处理核运行所述第三浏览器线程以在所述媒体消费队列中添加伪帧,以使得所述媒体消费队列中包括所述伪帧在内的媒体数据的数据量大于或者等于阈值,并在所述媒体数据的数据量大于或者等于阈值的情况下对所述第一媒体数据进行解码。
26.在上述方案中,通过添加伪帧的方法加快媒体消费队列中的媒体数据中的数据量的增加以尽快达到阈值进行解码,加快了第三浏览器线程解码的过程,有效地减少时延。
27.在一些可能的设计中,所述处理器的第二处理核运行所述第三浏览器线程的过程中,调用低级语言编写的二进制代码对所述第一媒体数据进行解码。
28.在上述方案中,通过调用低级语言编写的二进制代码加快对第一媒体数据进行解码。
29.第二方面,提供了一种终端设备,所述终端设备包括浏览器和处理器,所述浏览器加载有脚本,所述处理器运行所述脚本以:接收云手机发送的第一媒体数据;对所述第一媒体数据进行解码,获取第一音频和第一视频;在所述浏览器中播放所述第一音频和第一视频;接收用户在所述浏览器输入的针对云应用的操作命令,将所述操作命令发送至所述云手机,其中,所述第一媒体数据在所述云手机运行所述云应用时产生。
30.在一些可能的设计中,所述处理器运行所述脚本以:接收所述云手机发送的第二媒体数据;对所述第二媒体数据进行解码,以获取第二音频和第二视频;在所述浏览器中播放所述第二音频和第二视频,其中所述第二媒体数据是所述云手机根据所述操作命令运行所述云应用时产生。
31.在一些可能的设计中,所述处理器运行所述脚本以产生第一浏览器线程、第二浏
览器线程以及第三浏览器线程;
32.所述处理器的第一处理核运行所述第一浏览器线程以接收云手机发送的第一媒体数据;
33.所述处理器的第二处理核运行所述第三浏览器线程以对所述第一媒体数据进行解码,以获取所述第一音频和所述第一视频;
34.所述处理器的第一处理核运行所述第二浏览器线程以在所述浏览器中播放所述第一音频和第一视频;并接收用户在所述浏览器输入的针对所述云应用的操作命令,将所述操作命令发送至所述云手机。
35.在一些可能的设计中,对所述第一媒体数据进行解码包括:
36.在媒体消费队列中的媒体数据的数据量小于阈值时,所述处理器的第二处理核运行所述第三浏览器线程以强制对所述第一媒体数据进行解码,其中,所述媒体消费队列用于存储所述第一媒体数据。
37.在一些可能的设计中,对所述第一媒体数据进行解码包括:
38.在媒体消费队列中的媒体数据的数据量小于阈值时,所述处理器的第二处理核运行所述第三浏览器线程以在所述媒体消费队列中添加伪帧,以使得所述媒体消费队列中包括所述伪帧在内的媒体数据的数据量大于或者等于阈值,并在所述媒体数据的数据量大于或者等于阈值的情况下对所述第一媒体数据进行解码。
39.在一些可能的设计中,所述处理器的第二处理核运行所述第三浏览器线程的过程中,调用低级语言编写的二进制代码对所述第一媒体数据进行解码。
40.第三方面,提供了一种计算机可读存储介质,包括指令,当所述指令在终端设备上运行时,使得所述终端设备执行如第一方面任一项所述的方法。
41.第四方面,提供了一种终端设备,包括处理器和存储器,所述处理器执行所述存储器中的代码执行如第一方面任一项所述的方法。
42.第五方面,提供了一种计算机程序产品,包括计算机程序,当所述计算机程序被计算设备读取并执行时,使得所述计算设备执行如第一方面任一项所述的方法。
43.在上述方案中,通过在终端设备的浏览器中加载脚本实现对云手机发送的应用的媒体数据的解码,无需受限于个人电脑,可实现跨平台的云手机应用音视频展示。
附图说明
44.图1是本技术涉及的云手机的媒体数据处理系统的结构示意图;
45.图2a-图2b示例性示出了两种不同的终端设备打开浏览器中游戏页面来玩游戏的示例性用户界面;
46.图3a-图3b示例性示出了原来的浏览器结构和修改后的浏览器结构的对比图;
47.图4是本技术提供的一种基于云手机的媒体数据处理方法的流程交互图;
48.图5是本技术涉及的websocket协议报文的结构示意图;
49.图6是本技术提供的一种终端设备的结构示意图;
50.图7是本技术提供的另一种终端设备的结构示意图。
具体实施方式
51.参见图1,图1是本技术涉及的云手机的媒体数据处理系统的结构示意图。本实施方式的云手机的媒体数据处理系统包括终端设备110以及云数据中心120。其中,终端设备110可以与云数据中心120通过网络进行通信。
52.终端设备110可以是智能手机、云终端或者瘦终端等等。在一具体的实施例中,终端设备110可以是配合云手机使用的终端设备,即,终端设备110具有强大的网络通信能力,但是,可以弱化计算能力以及存储能力。终端设备110中安装了浏览器,浏览器采用的浏览器引擎可以是trident、gecko、presto或者webkit等等,此处不作具体限定。终端设备110支持的操作系统可以是ios系统、安卓系统(android)、macos系统、windows系统以及linux系统等等。在游戏系统中,不同的终端设备110可以分别支持不同的操作系统,例如,终端设备1支持安卓系统,终端2支持macos系统,终端设备3支持ios系统,终端设备4支持windows系统以及终端5支持linux系统。当然,在该游戏系统中,不同的终端设备110也可以支持相同的操作系统,此处不作具体限定。
53.云数据中心120可以包括服务节点121以及云手机管理节点125。其中,服务节点121可以是通用的物理服务器,例如,物理服务器,如x86服务器或arm服务器等。云手机管理节点125可以是公有云中用于管理云手机的服务器,具体可以是通用的物理服务器,也可以是基于通用的物理服务器结合nfv技术实现的虚拟机(virtual machine,vm),所述虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,本技术不作具体限定。
54.在一具体的实施方式中,服务节点121包括云手机管理代理节点124、硬件资源、操作系统(operating system,os)122以及至少一个云手机123,每一个云手机123以容器(container)的形式与服务器上其他的云手机共享硬件资源和操作系统。其中,一种虚拟出带有操作系统,同时具有虚拟手机功能的云服务器,其本质是将手机上的应用转移到公有云上的虚拟手机来运行。
55.硬件资源可以包括计算资源、存储资源以及网络资源,比如处理器、存储器、网卡、路由、数据库等等,还可以包括其他云手机可能需要的硬件资源,本技术不作具体限定。
56.操作系统122可以是云手机适用的操作系统,比如安卓(android)操作系统,本技术不作具体限定。需要说明的是,操作系统122可以是官方完整的操作系统,也可以是为了适应服务节点121的运行方式对官方完整的操作系统的个别驱动模块进行修改后的操作系统,本技术不做具体限定。
57.云手机123以一个容器的形式与服务器上其他的云手机共享硬件资源和操作系统,每个容器可以包括云手机所需的云应用和每个云应用所需的依赖资源,云应用所需的依赖资源可以是操作系统核心库和系统库,比如功能函数库、三维图形处理库(如opengles)、媒体库(media libraries)、输入管理器(input manager)等等。在一实施方式中,容器可以包括游戏应用以及游戏应用所需要的依赖资源。其中,每个云手机123所处的容器使用硬件资源和操作系统122,但是不会对硬件资源进行独占,而是和其他云手机所处的容器共享硬件资源和操作系统122。换句话说,各个容器没有自己的内核,容器内的应用程序进程直接运行在服务节点121的内核上。
58.云手机管理代理节点124可以用于监控和收集服务节点121的服务信息,并将该服
务信息实时上报至云手机管理节点125,并且,还用于根据接收到的云手机的规格信息,接着,在服务节点121上创建容器,并从硬件资源中划分资源为容器设置上述云手机的规格信息所要求的硬件和软件。
59.在云数据中心120创建云手机的过程可以是:终端设备110向云手机管理节点125发送云手机创建信息。云手机管理节点125根据云手机创建信息中云手机123的规格信息和各个云手机管理代理节点124发送的服务信息,确定由服务器1创建云手机1,服务器2创建云手机2,那么服务器1上的云手机管理代理节点1可以接收云手机管理节点125发送的云手机1的规格信息,根据该规格信息完成云手机1的创建,服务器2上的云手机管理代理节点2可以接收云手机管理节点125发送的云手机2的规格信息,根据该规格信息完成云手机2的创建。可以理解,云手机管理节点125和部署在每个服务节点121上的云手机管理代理节点124可以基于kubernetes(k8s)、docker等容器管理系统实现,本技术不做具体限定。
60.在图1所示的云手机的媒体数据处理系统的基础上,用户可以通过终端设备中的浏览器来低时延玩游戏,而无需在终端设备中安装该云应用。下面将分别以终端设备分别为智能手机和瘦终端为例进行详细的说明。为了简便起见,下面的例子中均以云应用为游戏应用为例进行说明,但是在其他的例子中,云应用也可以是其他应用,此处不应具体限定。
61.终端设备为智能手机。图2a示例性示出了打开浏览器中游戏页面来玩游戏的示例性用户界面。如图2a的左上角所示:用户界面可包括:状态栏,日历指示符,天气指示符,具有常用应用程序图标的托盘,导航栏,以及其他应用程序图标。其中:
62.状态栏可包括:移动通信信号(又可称为蜂窝信号)的一个或多个信号强度指示符、无线高保真(wireless fidelity,wi-fi)信号的一个或多个信号强度指示符,电池状态指示符、时间指示符。
63.日历指示符可用于指示当前时间,例如日期、星期几、时分信息等。
64.天气指示符可用于指示天气类型,例如多云转晴、小雨等,还可以用于指示气温等信息。
65.具有常用应用程序图标的托盘可展示:电话图标、联系人图标、短信图、相机图标。
66.导航栏可包括:返回键、主屏幕键、多任务键等系统导航键。当检测到用户点击返回键时,智能手机可显示当前页面的上一个页面。当检测到用户点击主屏幕键时,智能手机显示主界面。当检测到用户点击多任务键时,智能手机可显示用户最近打开的任务。各导航键的命名还可以为其他,本技术对此不做限制。不限于虚拟按键,导航栏中的各导航键也可以实现为物理按键。
67.其他应用程序图标可例如:互传的图标、图库的图标、音乐的图标、应用的图标、邮箱的图标、浏览器的图标212、备忘录的图标、设置的图标。用户界面210还可包括页面指示符。其他应用程序图标可分布在多个页面,页面指示符可用于指示用户当前浏览的是哪一个页面中的应用程序。用户可以左右滑动其他应用程序图标的区域,来浏览其他页面中的应用程序图标。
68.在一些实施例中,图2a示例性所示的用户界面210可以为主界面(home screen)。可以理解的是,图2a仅仅示例性示出了智能手机上的用户界面,不应构成对本技术实施例的限定。
69.示例性的,用户可点击用户界面210上浏览器的图标212,智能手机检测到上述用户操作,响应于上述用户操作,智能手机打开浏览器220。
70.如图2a的右上角所示:浏览器220可包括:搜索框222,扫描控件,标签栏、多个推荐目录以及常用控件的托盘,其中:
71.搜索框222可用于根据用户输入的字符,搜索与该字符匹配的游戏网页。
72.扫描控件可用于对二维码或者条形码进行扫描,从而快速打开该二维码或者条形码对应的游戏网页。
73.标题栏可用于指示各个类型的主题,例如,推荐、游戏、热点以及娱乐等等。应标题栏的表现形式可以为文本信息、图标或其他形式。
74.控件302可接收用户操作(例如触摸操作),响应于检测到的该用户操作,主播终端120可以显示登录或切换云直播账号的页面。
75.常用控件的托盘可展示:上一页控件图标,下一页控件图标,首页控件图标,已打开网页图标等等。其中,上述控件图标均可接受用户操作(例如触摸操作),相应于检测到的该用户操作,智能手机可显示响应的页面,具体地,上一页控件图标可以用于显示上一页显示的网页页面,上一页控件图标可以用于显示下一页显示的网页页面,首页控件图标可用于浏览器的首页,浏览器的首要可以是用户自定义的,或者,浏览器预先设置的导航页面,已打开网页图标可以用于展示当前已经打开的多个页面。
76.多个推荐目录可例如:显示标题和显示图片224,显示标题显示了游戏的相关信息,显示图片224显示了游戏的相关图片。显示图片224关联了游戏页面的超链接,当用户点击显示图片224时,浏览器可以跳转到游戏页面230。
77.如图2a的下图所示,游戏页面230用于显示游戏的画面内容,并,播放游戏的声音。游戏页面可以包括游戏标题、游戏画面以及游戏控件。
78.游戏标题是可选项,即,用户可以选择显示游戏标题或者不显示游戏标题,或者,游戏页面可以默认显示游戏标签,或者,默认不显示游戏标题。
79.游戏画面的画质、清晰度、分辨率、大小以及色彩均可以是根据用户的需要自行设置的,例如,用户可以设置游戏的画面为全屏,也可以是非全屏。此外,游戏画面还可以以悬浮的形式设置在其他应用之上,以便于用户一边玩游戏,一边处理其他事项。游戏画面可以是二维画面,也可以是三维画面。
80.用户打开浏览器中游戏页面来玩游戏的具体过程是:用户用手指点击智能手机的用户界面210(user interface,ui)上的浏览器图标212,从而打开浏览器220。用户在浏览器120的搜索栏222中输入游戏网页230的统一资源定位符(uniform resource locator,url),或者,点击浏览器220推荐的超链接224(该超链接指向游戏网页230,并包括该游戏网页230的url),从而打开游戏网页230。然后,用户就可以在游戏页面230上玩游戏了。
81.可以理解的是,图2a仅仅示例性示出了智能手机上的打开游戏页面的各个用户界面,不应构成对本技术实施例的限定。
82.终端设备为瘦终端。图2b示例性示出了打开浏览器中游戏页面来玩游戏的示例性桌面。如图2b的左上角所示:桌面可包括:日历指示符,已打开应用程序托盘,开始按键。
83.其中:
84.日历指示符,位于桌面的右下角,可用于指示当前时间,例如日期、星期几、时分信
息等。
85.已打开应用程序托盘,位于桌面的底部,用于指示已经打开了的应用程序,例如,当浏览器被打开时,浏览器的图标就会显示在已打开应用程序托盘中,当浏览器被关闭时,浏览器的图标就会从已打开应用程序托盘中消失。当浏览器被多次打开时,可以显示多个重叠的浏览器的图标,以表示浏览器被多次打开。
86.开始按键,位于桌面的左下角,用于显示一级或者多级菜单,每级菜单可以显示多个应用程序的入口,例如,控制面板、设备和打印机、默认程序、安全以及帮助等等。
87.桌面上可以显示多个应用程序图标,例如:云应用的图标、相机的图标、时间的图标、日历的图标、应用的图标、浏览器的图标310、设置的图标等等。
88.示例性的,如图2b的左上图所示,用户可点击桌面上浏览器的图标310,瘦终端检测到上述用户操作,响应于上述用户操作,瘦终端打开浏览器320。
89.如图2b的右上角所示:浏览器320可包括:搜索框322,上一页控件,下一页控件、重新加载控件、标题栏以及多个推荐目录其中:
90.搜索框322可用于根据用户输入的字符,搜索与该字符匹配的游戏网页。
91.上一页控件可以用于显示上一页显示的网页页面,上一页控件图标可以用于显示下一页显示的网页页面,重新加载控件可以用于将当前页面进行刷新,以重新加载当前页面。
92.标题栏可用于指示各个类型的主题,例如,推荐、游戏、热点以及娱乐等等。应标题栏的表现形式可以为文本信息、图标或其他形式。
93.多个推荐目录可例如:显示标题和显示图片324,显示标题显示了游戏的相关信息,显示图片324显示了游戏的相关图片。显示图片324关联了游戏页面的超链接,当用户点击显示图片324时,浏览器可以跳转到游戏页面330。
94.如图2b的下图所示,游戏页面330用于显示游戏的画面内容,并,播放游戏的声音。游戏页面可以包括游戏标题、游戏画面以及游戏控件。
95.游戏标题是可选项,即,用户可以选择显示游戏标题或者不显示游戏标题,或者,游戏页面可以默认显示游戏标签,或者,默认不显示游戏标题。
96.游戏画面的画质、清晰度、分辨率、大小以及色彩均可以是根据用户的需要自行设置的,例如,用户可以设置游戏的画面为全屏,也可以是非全屏。此外,游戏画面还可以以悬浮的形式设置在其他应用之上,以便于用户一边玩游戏,一边处理其他事项。游戏画面可以是二维画面,也可以是三维画面。
97.用户打开浏览器中游戏页面来玩游戏的具体过程是:用户用鼠标点击显示器的界面310上的浏览器图标312,从而打开浏览器320。用户在浏览器320的搜索栏322中输入游戏网页330的统一资源定位符(uniform resource locator,url),或者,点击浏览器320推荐的超链接324(该超链接指向游戏网页330,并包括该游戏网页330的url),从而打开游戏网页330。然后,用户就可以在游戏页面330上玩游戏了。其中,界面310除了用于显示浏览器图标之外,还可以用于显示音乐应用图标、邮件应用图标、图库应用图标以及设置图标等等,此处不作具体限定。
98.可以理解的是,图2b仅仅示例性示出了瘦终端上的打开游戏页面的各个用户界面,不应构成对本技术实施例的限定。
99.除了上述例子之外,在实际应用中,终端设备还可以是虚拟设备等等,此处不作具体限定。
100.下面将对本技术涉及的浏览器的内部结构进行具体的介绍。
101.如图3a所示,以浏览器为webkit为例,浏览器包括渲染引擎以及javascript(js)引擎,其中,渲染引擎用于将资源文件(html/css/javascript文本及相应的资源文件)转化为用户可见的结果。渲染引擎通常包括css、svg、布局、渲染树、html、dom以及inspector等等。js引擎用于读取文件中的javascript,处理并执行它,js引擎是单线程的。此外,webkit还包括webkit嵌入式接口以及对应的webkit绑定,webkit2嵌入式接口以及对应的webkit2绑定,webkitports。其中,webkitports可以包括网格段、视频、文字、硬件加速、图片解码等等模块。此外,还可以包括webkit依赖的数据库和操作系统。其中,数据库可以包括2d图形库、3d图形库、网络库、存储、音频库以及视频库等等。
102.如图3b的虚线框部分所示,可以在现有浏览器的js引擎基础上增加了包括第一浏览器线程、第二浏览器线程以及第三浏览器线程在内的多个浏览器线程。其中,浏览器线程可以是webworker。webworker用于使得浏览器可以在与主执行线程分离的后台线程(worker)中运行一个脚本操作,从而为js引擎创造多线程运行环境,即,浏览器的主线程创建浏览器线程,并且分配任务给浏览器线程,主线程运行的同时浏览器线程也在运行,相互不干扰,在浏览器线程运行结束后把结果返回给主线程。其中,第一浏览器线程也可以称之为网络线程,网络线程采用了websocket协议,能够实现终端设备与云手机之间的游戏数据(包括媒体数据以及控制数据)的双向通讯。第二浏览器线程也可以称之为主控线程,用于负责游戏的整体运行。第三浏览器线程也可以称之为解码线程,用于负责对游戏的媒体数据进行解码。
103.下面将结合图3b所示的浏览器对用户可以通过终端设备中的浏览器来低时延玩游戏的实现过程进行详细的介绍。如图4所示,图4是本技术提供的一种游戏运行方法的流程交互图。本实施方式中的游戏运行方法,包括如下步骤:
104.s101:在用户在浏览器的搜索栏中输入游戏网页的url,或者,点击浏览器推荐的超链接的情况下,终端设备的浏览器生成媒体数据请求,其中,所述媒体数据请求用于生成所述游戏网页的媒体数据,所述媒体数据请求包含url,所述url对应于游戏。
105.在一具体的实施例中,浏览器采用的浏览器引擎可以是trident、gecko、presto或者webkit等等,此处不作具体限定。
106.在一具体的实施例中,终端设备通过浏览器中的主控线程检测用户是否在搜索栏中输入游戏网页的url,或者,用户是否点击了浏览器推荐的超链接。在搜索栏中输入游戏网页的url,或者,点击了浏览器推荐的超链接的情况下,主控线程生成媒体数据请求,并通过共享内存或者管道通信等等方法将媒体数据请求发送给网络线程。
107.s102:终端设备的浏览器将媒体数据请求发送给云手机。相应地,云手机接收终端设备发送的媒体数据请求。
108.在一具体的实施例中,浏览器中的网络线程通过websocket协议将媒体数据请求发送给云手机。其中,网络线程是独享的webwork,因此,网络线程能够实现浏览器和云手机之间的数据收发。
109.s103:云手机运行游戏应用产生第一媒体数据。
110.在一具体的实施例中,云手机在接收到终端设备的浏览器发送的媒体数据请求之后,从媒体数据请求中获取游戏网页的url,根据游戏网页的url确定对应的游戏应用,运行游戏应用,并产生第一媒体数据。然后,云手机将产生的第一媒体数据通过编码方法进行编码,从而降低数据传输的数量。
111.s104:云手机将所述第一媒体数据发送给终端设备。相应地,终端设备接收云手机发送的第一媒体数据。
112.在一具体的实施例中,终端设备的浏览器中的网络线程通过websocket协议接收云手机发送的第一媒体数据。浏览器中的主控线程监听到网络线程发送的第一媒体数据之后,将第一媒体数据推送到媒体数据队列中。浏览器中的主控线程以即时的方式将媒体数据队列中的数据通过共享内存或者管道通信等等方法发送给解码线程进行解码,从而有效降低游戏的时延。
113.s105:终端设备对第一媒体数据进行解码,从而获得第一音频和/或第一视频。
114.在一具体的实施例中,终端设备中的浏览器中的解码线程对第一媒体数据进行解码,从而获得第一音频和/或第一视频。然后,浏览器中的解码线程通过共享内存或者管道通信等等方法将第一媒体数据发送给主控线程。其中,解码线程采用的解码方法和云手机采用的编码方法是相对应的,当云手机采用的编码方法是无损压缩的时候,终端设备采用的解码方法也是无损压缩的,当云手机采用的编码方法是有损压缩的时候,终端设备采用的解码方法也是有损压缩的。
115.s106:终端设备在浏览器生成的第一游戏页面中播放第一音频和/或第一视频。
116.s107:在用户在浏览器的游戏页面上对游戏进行操作的情况下,接收用户在浏览器的游戏页面输入的游戏的操作命令,并转化为云手机能够识别的游戏操作。
117.在一具体的实施例中,终端设备的浏览器中的主控线程接收用户通过外部输入设备在浏览器的游戏页面输入的游戏的操作命令。其中,外部输入设备可以是触摸屏、鼠标、键盘、摄像头,扫描仪,光笔,手写输入板,游戏杆以及麦克风等等。游戏的操作命令可以包括前进、后退、左转、右转、左移、右移、跳、坐下、起立、收/拿武器、走路/跑步等等。终端设备和云手机对操作的定义并不相同,因此,浏览器需要将用户输入的操作命令转化为云手机能够识别的游戏操作。然后,浏览器中的主控线程通过共享内存或者管道通信等等方法将游戏操作发送给网络线程。
118.s108:终端设备向云手机发送游戏操作。相应地,云手机接收终端设备发送的游戏操作。
119.在一具体的实施例中,终端设备通过websocket协议将游戏操作发送给云手机。
120.s109:云手机根据游戏操作运行游戏应用,从而生成第二媒体数据。
121.在一具体的实施例中,云手机继续运行游戏应用,并根据游戏操作生成第二媒体数据。然后,云手机将产生的第二媒体数据通过编码方法进行编码,从而降低数据传输的数量。
122.s110:云手机向终端设备发送第二媒体数据。相应地,终端设备接收云手机发送的第二媒体数据。
123.在一具体的实施例中,终端设备的浏览器中的网络线程通过websocket协议接收云手机发送的第二媒体数据。浏览器中的主控线程监听到网络线程发送的第二媒体数据之
后,将第二媒体数据推送到媒体数据队列中。浏览器中的主控线程以即时的方式将媒体数据队列中的数据通过共享内存或者管道通信等等方法发送给解码线程进行解码,从而有效降低游戏的时延。
124.s111:终端设备对第二媒体数据进行解码,从而获得第二音频和/或第二视频。
125.在一具体的实施例中,终端设备中的浏览器中的解码线程对第二媒体数据进行解码,从而获得第二音频和/或第二视频。然后,浏览器中的解码线程通过共享内存或者管道通信等等方法将第二媒体数据发送给主控线程。
126.s112:终端设备在浏览器生成的第二游戏页面中播放第二音频和/或第二视频。
127.在一具体的实施例中,媒体数据请求、第一音频和/或第一视频、游戏操作以及第二音频和/或第二视频均采用websocket协议格式进行封装。如图5所示,websocket协议格式包括1比特的fin,各占1比特的rsv1、rsv2、rsv3,4个比特的opcode,1个比特的掩码(mask),7个比特的数据负载长度(payload len),0至4字节的掩码键值(masking-key),多字节的载荷数据(payload)。这里,媒体数据请求、第一音频和/或第一视频、游戏操作以及第二音频和/或第二视频负荷在载荷数据(payload)中。
128.在一具体的实施例中,终端设备接收云手机发送的第一媒体数据,需要尽快将第一媒体数据解码为第一音频和/或第一视频,并在浏览器生成的第一游戏页面中播放第一音频和/或第一视频。终端设备根据浏览器能力的不同,可以至少分成以下两种方式:
129.在第一种方式中,终端设备是通过视频(video)组件来实现尽快将第一媒体数据解码为第一音频和/或第一视频,并在浏览器生成的第一游戏页面中播放第一音频和/或第一视频。这里,视频(video)组件可以是利用webkitports中模块,例如,视频、硬件加速等等模块来实现的。终端设备一般是通过视频(video)组件来在浏览器中播放视频的,因此,视频(video)组件对时延并不敏感。在网络线程将接收到的媒体数据之后,视频(video)组件会先对媒体数据进行缓存,直到缓存的媒体数据的数量超过阈值之后,才对媒体数据进行解码,并在浏览器中播放出来以确保播放的流畅度,但是,这样会导致时延非常大。然而,游戏对时延的敏感度非常高,无法接受如此大的时延。为了解决时延大的问题,可以对视频(video)组件进行改进,从而降低时延。具体地,对视频(video)组件进行改进至少包括以下几个方面:(1)视频(video)组件发出强制命令,该强制命令指示解码线程立刻将接收到的第一媒体数据进行解码,从而得到第一视频以及第一音频,并且,主控线程立刻将在浏览器中将第一视频以及第一音频播放出来,而无需对第一媒体数据进行缓存。(2)视频(video)组件指示主控线程在媒体消费队列中增加伪帧,以使得缓存媒体消费队列中的媒体数据尽快到达阈值,在到达阈值时,视频组件指示解码线程对第一媒体数据进行解码从而得到第一视频和第一音频,并且,视频组件指示主控线程将第一视频和第一音频在浏览器中播放出来。其中,伪帧可以预先存储的,伪帧可以是和第一媒体数据完全不相关的数据帧,伪帧也可以称之为透明帧。(3)在解码出第一媒体数据的多帧视频和音频之后,视频(video)组件指示主控线程强制播放解码出的第一视频和第一音频中的最后一帧的视频和音频,以减少时延。为了进一步减少时延,视频(video)组件还可以以跳帧的方式对媒体数据进行处理,当以跳帧的方式对媒体数据进行处理时,可以对媒体数据进行采样,并且,越近的数据帧采样越密集,越远的数据帧的采样越稀疏。
130.在第二种方式中,终端设备是通过canvas组件来实现尽快将第一媒体数据解码为
第一音频和/或第一视频,并在浏览器生成的第一游戏页面中播放第一音频和/或第一视频。这里,canvas组件可以是利用webkitports中模块,例如,视频、硬件加速等等模块来实现的。解码线程是通过javascript语义编写的文件进行解码的,解码的效率非常低,为此,canvas组件可以指示解码线程调用低级语言编写的二进制代码,例如,webassembly进行解码,从而提高解码速率,另外,解码线程单可以独占用一个处理器的内核进行解码,也能明显提高解码速率。
131.上述详细阐述了本技术实施例的方法,为了便于更好的实施本技术实施例上述方案,相应地,下面还提供用于配合实施上述方案的相关设备。
132.本技术提供的终端设备可以包括处理器以及如图3b所示的浏览器所述浏览器包括js引擎,所述浏览器加载有脚本,所述处理器运行所述脚本以令js引擎产生第一浏览器线程、第二浏览器线程以及第三浏览器线程。
133.所述处理器的第一处理核运行所述第一浏览器线程以接收云手机发送的第一媒体数据,所述第一媒体数据在所述云手机运行游戏时产生;
134.所述处理器的第二处理核运行所述第三浏览器线程以对所述第一媒体数据进行解码,以获取第一音频和第一视频;
135.所述处理器的第一处理核运行所述第二浏览器线程以在所述浏览器中播放所述第一音频和第一视频;
136.所述处理器的第一处理核运行所述第二浏览器线程以接收用户在所述浏览器输入的针对所述游戏的操作命令,将所述操作命令发送至所述云手机。
137.在一些可能的设计中,所述处理器的第一处理核运行所述第一浏览器线程以接收云手机发送的第二媒体数据,所述第二媒体数据在所述云手机根据所述操作命令运行游戏时产生;
138.所述处理器的第二处理核运行所述第三浏览器线程以对所述第二媒体数据进行解码,以获取第二音频和第二视频;
139.所述处理器的第二处理核运行所述第三浏览器线程以在所述浏览器中播放所述第二音频和第二视频。
140.在一些可能的设计中,在媒体消费队列中的媒体数据的数据量小于阈值时,所述处理器的第二处理核运行所述第三浏览器线程以强制对所述第一媒体数据进行解码,其中,所述媒体消费队列用于存储所述第一媒体数据。
141.在一些可能的设计中,在媒体消费队列中的媒体数据的数据量小于阈值时,所述处理器的第二处理核运行所述第三浏览器线程以在所述媒体消费队列中添加伪帧,以使得所述媒体消费队列中包括所述伪帧在内的媒体数据的数据量大于或者等于阈值,并在所述媒体数据的数据量大于或者等于阈值的情况下对所述第一媒体数据进行解码。
142.在一些可能的设计中,所述处理器的第二处理核运行所述第三浏览器线程的过程中,调用低级语言编写的二进制代码对所述第一媒体数据进行解码。
143.应理解,图3b所示的终端设备的内部的单元模块也可以有多种划分,各个模块可以是软件模块,也可以是硬件模块,也可以是部分软件模块部分硬件模块,本技术不对其进行限制。图3b是一种示例性的划分方式,本技术不作具体限定。
144.下面介绍本发明实施例涉及的终端设备的一种实现方式。该终端设备支持运行多
个网页标签的浏览器。浏览器可以分别使用不同的输入输出设备,例如,输入设备可以是键盘和鼠标,输出设备可以是显示屏。或者,浏览器使用公共的输入输出设备:触摸屏。触摸屏用于接收用户的触控操作,而且显示浏览器的输出内容。
145.图6是终端设备的一种实现方式的结构框图。如图6所示,终端设备可以是瘦终端,包括:主机410、输出设备420以及输入设备430。
146.主机410可集成包括:一个或多个处理器、时钟模块以及电源管理模块。集成于主机410中的时钟模块主要用于为处理器产生数据传输和时序控制所需要的时钟。集成于主机410中的电源管理模块主要用于为处理器、输出设备420以及输入设备430提供稳定的、高精确度的电压。主机410还集成了存储器,用于存储各种软件程序和/或多组指令。具体实现中,存储器可包括高速随机存取的存储器,并且也可包括非易失性存储器,例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备。存储器可以无需安装操作系统以及大量的应用程序,存储器只需要存储一些必须的应用程序即可,例如,输入输出程序,该输入输出程序可用于与一个或多个输入设备或者输出设备进行通信。通信程序,可以用于与云手机进行通信。存储器还可以存储用户界面程序,该用户界面程序可以通过图形化的操作界面将浏览器的内容形象逼真的显示出来,并通过菜单、对话框以及按键等输入控件接收用户对浏览器的控制操作。
147.输出设备420主要包括显示器,显示器可包括阴极射线管显示器(cathode ray tube,crt),等离子显示器(plasma display panel,pdp),液晶显示器(liquid crystal display,lcd)等等。以显示器为lcd为例,液晶显示包括液晶面板以及背光模组,其中,液晶显示面板包括偏振膜、玻璃基板、黑色矩阵、彩色滤光片、保护膜、普通电极、校准层、液晶层(液晶、间隔、密封剂)、电容、显示电极、棱镜层、散光层。背光模组包括:照明光源、反射板、导光板、扩散片、增亮膜(棱镜片)及框架等等。
148.输入设备430可以包括键盘和鼠标。键盘和鼠标是最常用也是最主要的输入设备,通过键盘可以将英文字母、数字、标点符号等输入到计算机中,从而向计算机发出命令、输入数据等,通过鼠标可以快速地进行纵横坐标定位,从而简化操作。其中,键盘可以包括机械键盘、塑料薄膜式键盘(mechanical)、导电橡胶式键盘(membrane),无接点静电电容键盘(capacitives)等等,鼠标可以包括滚球鼠标、光电鼠标以及无线鼠标等等。
149.输入设备430用于接收云手机发送的第一媒体数据,所述第一媒体数据在所述云手机运行云应用时产生;
150.主机410用于对所述第一媒体数据进行解码,以获取第一音频和第一视频;
151.输出设备420用于在所述浏览器中播放所述第一音频和第一视频;
152.输入设备430用于接收用户在所述浏览器输入的针对所述云应用的操作命令,以通过通信模块将所述操作命令发送至所述云手机。
153.为了简便起见,图6所示的终端设备并没有进行详细的介绍,具体请参见图1至图5以及相关描述,此次不再展开描述。
154.图7是终端设备的另一种实现方式的结构框图。如图7所示,终端设备可以是智能手机,包括:基带芯片510、存储器515,包括一个或多个计算机可读存储介质、射频(rf)模块516、外围系统517。这些部件可在一个或多个通信总线514上通信。
155.外围系统517主要用于实现终端设备510和用户/外部环境之间的交互功能,主要
包括终端设备的输入输出装置。具体实现中,外围系统517可包括:触摸屏控制器518、摄像头控制器519、音频控制器520以及传感器管理模块521。其中,各个控制器可与各自对应的外围设备,例如触摸屏523、摄像头524、音频电路525以及传感器526,耦合。在一些实施例中,传感器526中的手势传感器可用于接收用户输入的手势控制操作。传感器526中的压力传感器可设置于触摸屏523的下方,可用于采集用户通过触摸屏523输入触控操作时作用于触摸屏523上的触控压力。需要说明的,外围系统517还可以包括其他i/o外设。
156.基带芯片510可集成包括:一个或多个处理器511、时钟模块512以及电源管理模块513。集成于基带芯片510中的时钟模块512主要用于为处理器511产生数据传输和时序控制所需要的时钟。集成于基带芯片510中的电源管理模块513主要用于为处理器511、射频模块516以及外围系统提供稳定的、高精确度的电压。
157.存储器515用于存储各种软件程序和/或多组指令。具体实现中,存储器可包括高速随机存取的存储器,并且也可包括非易失性存储器,例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备。存储器可以无需安装操作系统以及大量的应用程序,存储器只需要存储一些必须的应用程序即可,例如,输入输出程序,该输入输出程序可用于与一个或多个输入设备或者输出设备进行通信。通信程序,可以用于与云手机进行通信。存储器还可以存储桌面程序。
158.射频(rf)模块516用于接收和发送射频信号,主要集成了终端设备的接收器和发射器。射频(rf)模块516通过射频信号与通信网络和其他通信设备通信。具体实现中,射频(rf)模块516可包括但不限于:天线系统、rf收发器、一个或多个放大器、调谐器、一个或多个振荡器、数字信号处理器、codec芯片、sim卡5161和存储介质等。此外,射频模块还可以包括wifi 5162,蓝牙等等短距离无线通信模块。在一些实施例中,可在单独的芯片上实现射频(rf)模块516。
159.射频(rf)模块516用于接收云手机发送的第一媒体数据,所述第一媒体数据在所述云手机运行云应用时产生;
160.基带芯片510用于对所述第一媒体数据进行解码,以获取第一音频和第一视频;
161.触摸屏523用于在所述浏览器中播放第一视频,音频电路525用于播放第一音频;
162.触摸屏523用于接收用户在所述浏览器输入的针对所述云应用的操作命令,以通过射频(rf)模块516将所述操作命令发送至所述云手机。
163.为了简便起见,图7所示的终端设备并没有进行详细的介绍,具体请参见图1至图5以及相关描述,此次不再展开描述。
164.在上述方案中,通过在终端设备的浏览器中加载脚本实现对云手机发送的游戏的媒体数据的解码,无需受限于个人电脑,可实现跨平台的云手机游戏音视频展示。
165.通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本技术可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用cpu、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本技术而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质
中,如计算机的软盘、u盘、移动硬盘、rom、ram、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本技术各个实施例所述的方法。
166.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
167.所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地生成按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献