实施例一
参照图1,示出了本申请实施例的一种智能终端的结构框图,具体可以包括:第一操作系统102和第二操作系统104。
其中,第一操作系统102,可以用于通过调用通信接口向所述第二操作系统发送媒体处理请求。
本实施例的智能终端在启动时,可以自动启动第一操作系统102,以实现其功能。当智能终端需要播放媒体数据时,第一操作系统102可以对所需要播放的媒体数据进行检测,判断是否支持该媒体数据对应媒体数据的格式,即判断是否可以对该媒体数据处理。智能终端的第一操作系统102在检测到不支持该媒体数据对应的媒体数据格式时,即在检测到无法处理该媒体数据时,通过调用通信接口启动第二操作系统104,并针对该媒体数据的处理生成媒体数据处理请求,通过通信接口向智能终端的第二操作系统104发送媒体处理请求,触发第二操作系统104对该媒体数据进行处理。其中,该媒体处理请求与媒体数据处理有关,如包括了媒体数据的源信息、第一操作系统的控件标志符等参数信息,以及媒体应用对应的应用包名。
第二操作系统104,可以用于接收到媒体处理请求后,依据所述媒体处理请求对媒体数据进行处理,生成处理结果,将所述处理结果反馈给第一操作系统。
第二操作系统104在接收到第一操作系统104所发送的媒体处理请求后,可以依据该媒体处理请求对媒体数据进行处理,生成该媒体数据对应的处理结果。具体的,第二操作系统可以通过调用媒体应用对应的接口,获取该媒体数据对应的软件开发工具包(Software Development Kit,SDK),通过该SDK对该媒体数据进行处理,从而可以完成对该媒体数据的处理,生成处理结果。第二操作系统104在生成该媒体数据的处理结果后,将所生成的处理结果反馈给第一操作系统102,如将生成的图形数据发送给第一操作系统,使得第一操作系统102可以基于该处理结果对媒体数据进行播放,从而实现智能终端的多媒体功能。
因此,智能终端的第一操作系统102还用于接收第二操作系统102所反馈的处理结果,基于所述处理结果对所述媒体数据进行响应。
在本实施例中,第一操作系统102在接收到第二操作系统102针对媒体数据处理所发送的处理结果后,就可以通过该处理结果对该媒体数据进行响应制。具体的,第一操作系统102可以基于该处理结果生成该媒体数据在显示屏上显示的播放数据,以实现智能终端对该媒体数据的播放控制,如在显示屏播放视频,暂停视频播放、对视频进行快进或快退播放等。
需要说明的时,本申请实施的智能终端指的是具有多媒体功能的终端设备,支持音频、视频、数据等方面的功能。本实施中的智能终端安装有两个操作系统,包括移动智能终端如智能手机、平板电脑、也可以是智能电视、个人计算机、机顶盒如网络高清机顶盒等设备。
本申请实施例的媒体数据指的是媒体所对应的传输数据,如视频对应的视频数据,音频对应的音频数据等。其中,视频数据用于播放视频,音频数据用于播放音频,如播放音乐。
基于上述智能终端,论述基于智能终端的媒体数据播放方法,如图2所示,具体可以包括如下步骤:
步骤202,第一操作系统通过调用通信接口向所述第二操作系统发送媒体处理请求。
当智能终端需要播放媒体数据时,第一操系统需要对媒体数据进行处理,如按照该媒体数据对应的媒体数据格式对该媒体数据进行解释,生成该媒体数据对应的播放数据,从而可以依据该播放数据对该媒体数据进行播放,即实现智能终端的多媒体播放功能。
在本申请实施例中,当第一操系统检测到无法处理该媒体数据时,即在第一系统不支持该媒体数据对应的格式时,可以通过调用通信接口,如进程间通信(Inter-Process Communication,IPC)机制的接口,连接第二操作系统,向第二操系统发送媒体处理请求。其中,该媒体处理请求与所述媒体数据处理有关,是第一操作系统基于所需要处理的媒体数据所生成的,可以包括媒体数据的源信息、第一操操作系统的控件标志符、应用包名等信息。其中,媒体数据的源信息可以包括媒体数据对应的统一资源定位符(UniformResource Locator,URL),还可以包括该媒体数据对应的其他数据,如媒体数据对应的媒体标签等,媒体标签可以用于确定媒体数据所采用的媒体数据格式,URL可以用于获取媒体数据;第一操操作系统的控件标志符可以用于建立双向通信连接;应用包名可以用于确定处理该媒体数据的媒体应用,通过该媒体应用可以获取该媒体数据对应的SDK。
步骤204,第二操作系统接收到媒体处理请求后,依据媒体处理请求对媒体数据进行处理,生成处理结果,将所述处理结果反馈给第一操作系统。
智能终端的第二操作系统在接收到第一操作系统所发送的媒体处理请求后,可以依据该媒体处理请求启动媒体应用。其中,该媒体应用安装有媒体数据对应的SDK,可以通过该SDK对该媒体数据进行解析,完成对该媒体数据的处理。具体的,第二操作系统可以通过调用媒体应用对应的接口,启动媒体应用,从而可以获取到该媒体数据对应的SDK。通过SDK对媒体数据进行解析,生成该媒体数据的处理结果。作为本申请实施例的一个具体示例,通过该SDK调用媒体服务模块的接口,创建解码环境,对该媒体数据进行解码,生成解码后的数据帧,采用数据帧生成该媒体数据对应的图形数据,从而可以基于该图形数据生成该媒体数据的处理结果,通过通信接口将该处理结果反馈给操作系统,即响应第一操作系统所发送的媒体处理请求,使得第一操作系统可以基于该处理结果生成该媒体数据对应的播放数据。其中,该处理结果可以包括第二图形信息、播放状态数据等。第二图形信息用于在第一操作系统中生产媒体数据对应的播放数据,播放状态数据可以用于显示媒体数据所对应的播放状态,如当前的播放进度、媒体数据的播放时长等。
步骤206,第一操作系统接收到所述处理结果,基于所述处理结果对所述媒体数据进行播放。
智能终端的第一操作系统在接收到第二操作系统所发送的处理结果后,可以对处理结果进行检测。如处理结果中提取第二图形信息,并且基于该媒体数据所在的播放页面的其他内容生成第一图形信息,通过第一图形服务模块将第二图形信息合成到第一图形信息中,生成第一操作系统的图形显示数据,即生成了该媒体数据对应的播放数据,从而可以依据该播放数据对该媒体数据进行播放。其中,该图形显示数据包含了第二操作系统所生成的处理结果,用于在智能终端的显示界面展现图形页面,如在智能终端对应的显示屏上展现播放页面,对媒体数据进行播放。
在本申请实施例中,智能终端的第一操作系统在检测到无法处理当前所需要播放的媒体数据时,可以通过通信接口向第二操作系统发送媒体处理请求,请求第二操作系统对该媒体数据进行处理,即通过第二操作系统对该媒体数据进行处理,生成处理结果,使得第一操作系统可以基于第二操作系统所生成的处理结果对所述媒体数据进行播放,从而解决了由于第一操作系统无法处理媒体数据而造成智能终端基于第一操作系统播放媒体数据失败的问题,从而可以在第一操作系统中播放媒体数据,实现智能终端的媒体播放功能。
实际上,当媒体应用没有为第一操作系统提供自身的SDK对应的接口时,则第一系统不能获取到该SDK,即不能通过第三方应用所提供的SDK处理该媒体应用对应媒体数据,即不支持该媒体用所采用的媒体数据格式。例如,视频的提供商、视频应用的开发商在设计SDK时,即第三方在开发SDK时,没有针对第一操作系统在SDK中设置SDK与第一操作系统对应的接口,导致第一系统不能通过接口获取第三方所提供的SDK,造成第一操作系统不能处理其所提供的视频数据的问题。但是,第三方在开发SDK时,通常在SDK里设置与第二操作系统对应的接口,即为第二操作系统提供自身的SDK对应的接口,使得媒体应用可以获取到该SDK,从而可以将其所开发的媒体应用安装在第二操作系统上。因此,第二操作系统可以通过启动媒体应用,调用SDK对应的接口获取SDK,通过该SDK对媒体数据进行处理,生成该媒体数据对应的处理接口,使得智能终端可以基于该处理结果对媒体数据进行播放,实现媒体播放功能。
参照图3,示出了本申请实施例的另一种智能终端的结构框图。
在本申请实施中,智能终端的第一操作系统102可以包括:浏览器内核1022、网桥服务模块1024和第一图形服务模块1026;第二操作系统104可以包括:媒体应用1042、媒体服务模块1044和第二图形服务模块1046。
当第一操操作系统102无法处理处理媒体数据时,第一操作系统102的浏览器内核1022可以通过远程注册(RegistRemote)连接第一图形服务模块1026。在远程连接中(OnRegisted),可以通过创建第二图形,如子图形(CreateSubSurface),实现对媒体数据的播放。作为本申请的一个具体示例,如图4所示,在创建图形过程(OnSurfaceCreated)中,浏览器内核1022(WebEngine)通过网桥服务模块1024(MediaBridgeServer)向第二操作系统104的媒体应用1042(Application)发送准备播放消息(Prepare消息),触发媒体应用1042进入准备播放状态。媒体应用1042在接收到准备播放消息后,向媒体服务模块1044(MediaServer)发送创建图形消息(CreateSurface消息),触发媒体服务模块1044向对第二图形服务模块1046(SurfaceFlinger)发送创建媒体图形消息(CreateMediaSurface消息)。第二服务模块在接收到创建媒体图形消息后,可以依据Wayland协议与第一操作系统102建立Wayland连接(WaylandConnection),从而可以在连接状态(OnConnected)下创建子图形(CreateSubSurface),将生成子图形(SetSubSurface)传送给第一图形服务模块1026(Weston Server),即将生成的第二图形发送给第一图形服务模块1026,从而使得第一操作系统102可以基于第二图形对媒体数据进行播放。第二图形服务模块1046在建立与第一图形服务模块1026的连接后,可以通过子图形创建消息(OnSurfaceCreated消息)通知媒体服务模块1044,触发媒体服务模块1044向媒体应用1042发送初始化完成消息(OnPrepared消息)。媒体应用1042在接收到初始化完成的消息后,向网桥服务模块1024转发初始化完成的消息,进而使得浏览器内核1022获取到初始化完成的消息,进入开始播放媒体数据的状态。浏览器内核1022可以通过发送开始播放消息(Start消息),触发媒体服务模块1044向第二图形服务模块1046发送绘制图形消息(DrawToSurface消息),使得第二图形服务模块1046绘制子图形传送给第一图形服务模块1026,相当于DrawToSubsurface,从而可以在第一操系统中对媒体数据进行播放。同理,浏览器内核1022通过发送停止播放消息(如Stop消息),可以触发媒体服务模块1044向第二图形服务模块1046发送删除图形消息,相当于DestorySurface,使得第二图形服务模块1046断开与第一图形服务模块1026的Wayland连接,如发送WaylandDisconnect消息,使得连接断开即第二图形服务模块1046断开与第一图形服务处于OnDisconnected状态,停止播放媒体数据。
其中,第一操作系统102的浏览器内核1022,可以用于基于用户操作生成的播放请求,所述播放请求包含所述媒体数据的源信息;以及用于依据所述播放请求检测媒体数据的源信息。具体的,浏览器内核可以对用户操作对应的接口进行监听,在监听到用户操作时,通过获取该用户操作对应的数据源信息生成操作请求。当数据源信息包含了媒体标签时,浏览器内核可以将该操作请求确定为播放请求,并且可以对该媒体数据的源信息进行检测,以判断第一操系统是否支持该媒体数据对应的媒体数据格式。当检测到第一操作体统不支持该媒体数据对应的媒体数据格式,可以判定第一操作系统无法处理该播放请求中的媒体数据。
参照图5,示出了本申请实施中第一操作系统的一种浏览器内核的结构框图。
在本申请的一种优选实施例中,媒体数据的源信息包括媒体标签;所浏览器内核1022,可以包括如下子模块:
媒体标签提取子模块102201,用于所述浏览器内核从源信息中提取所述媒体数据对应的媒体标签。
判断子模块102203,用于基于所述媒体标签判断所述媒体数据是否符合预置的数据格式。
确定子模块102205,用于在所媒体数据不符合预置的数据格式时,确定第一操作系统无法处理所述媒体数据。
参数信息发送子模块102207,用于向所述网桥服务模块发送所述媒体数据对应的参数信息。
在本申请实施例中,浏览器内核102可以通过媒体标签提取子模块102201从源信息中提取所述媒体数据对应的媒体标签;采用判断子模块102203对所提取到媒体标签进行检测,以判断媒体数据是否符合预置的数据格式,即判断第一操作系统102是否可以处理该媒体数据;在该媒体数据不符合预置的数据格式时,通过确定子模块102205可以确定第一操作系统102无法处理该媒体数据,并且通过参数信息发送子模块102207向所述网桥服务模块10204发送所述媒体数据对应的参数信息,触发网桥服务模块1024向第二操作系统104发送媒体处理请求,使得第一操作系统102可以连接第二操作系统104,通过第二操作系统104对该媒体数据进行处理,获取到第二操作系统104针对该媒体数据的处理结果。
网桥服务模块1024,具体可以用于在接收到所述参数信息后,依据所述参数信息生成媒体处理请求,调用通信接口向所述第二操作系统发送媒体处理请求。
可选的,浏览器内核1022还可以包括:标志符获取子模块102209和参数信息确定子模块102211。
其中,标志符获取子模块102209,可以用于通过系统接口获取第一操作系统的控件标志符。
数信息确定子模块102211,可以用于将所述控件标志符和源信息作为所述参数信息。
在本申请实施例中,浏览器内核可以通过标志符获取子模块102209调用系统接口,获取第一操作体统的控件标识符,该控件标识符用于建立第一操系统与第二操作系统之间的双向通信;并通过参数信息确定子模块102211将所述控件标志符和源信息作为所述参数信息,调用参数信息发送子模块102207向网桥服务模块1024发送参数信息。
参照图6,示出了本申请实施中第一操作系统的一种网桥服务模块的结构框图。
在本申请的一种优选实施例中,网桥服务模块1024可以包括如下子模块:
应用包名确定子模块102401,可以用于从所述参数信息中提取源信息,基于所述源信息确定应用包名,所述应用包名用于确定处理所述媒体数据的媒体应用。
处理请求生成子模块102403,可以用于采用所述参数信息以及应用包名,生成所述媒体处理请求。
在本申请实施例中,网桥服务模块1024在接收到浏览器内核所发送的参数信息后,可以通过应用包名确定字模块102401从参数信息中提取媒体数据的源信息,依据所提取的源信息确定处理该媒体数据的媒体应用对应的应用包名;采用处理请求生成子模块102403生成媒体处理请求,该媒体处理请求包含参数信息以及应用包名。网桥服务模块1024通过通信接口将该媒体处理请求发发送给第二操作系统104,触发第二操作系统104依据该媒体处理请求启动应用包名对应的媒体应用1042,对媒体数据进行处理。
可选的,网桥服务模块1024还可以包括:通信建立子模块102405和处理请求发送子模块102407。
通信建立子模块102405,用于调用所述通信接口,基于所述控件标识符与第二操作系统建立双向通信连接。
处理请求发送子模块102407,用于基于所述双向通信连接向第二操作系统发送所述媒体处理请求。
在本申请实施例中,网桥服务模块1024可以通过通信建立子模块102405调用通信接口,采用控件标识符与第二操作系统建立双向通信连接。此外,网桥服务模块1024还可以通过处理请求发送子模块102407,基于通信建立子模块102405所建立的双向通信连接,向第二操作系统发送所述媒体处理请求。
第二操作系统104,可以具体用于基于所述媒体处理请求,启动所述应用包名对应的媒体应用1042。该媒体应用1042,用于响应所述媒体处理请求,生成所述媒体数据对应的处理结果。具体的,媒体应用1042安装有SDK,可以依据媒体数据的源信息如媒体数据的资源统一定位符(UniformResource Locator,URL)获取媒体处理请求对应的媒体数据,通过SDK对该媒体数据进行解析,以生成该媒体数据的处理结果,如调用媒体服务接口创建解码环境,对所述媒体数据进行解码,生成所述处理结果。
参照图7,示出了本申请实施中第二操作系统的一种媒体应用的结构框图。
在本申请的一种优选实施例中,媒体应用1042可以包括如下子模块:
媒体数据获取子模块104201,用于依据所述源信息获取媒体处理请求对应的媒体数据。
解码环境创建子模块104203,用于调用媒体服务接口创建解码环境,对所述媒体数据进行解码,生成所述处理结果。
在本申请实施例中,媒体应用1042可以通过解码环境创建子模块104203,调用媒体接口创建解码环境,对所述媒体数据进行解码,生成所述处理结果。作为本申请的一个具体示例,可以通过解码环境创建子模块104203调用媒体接口,向第二媒体服务模块1044发送所获取的媒体数据,触发第二媒体服务模块1044对该媒体数据进行解码。
可选的,解码环境创建子模块104203可以包括媒体数据发送单元1042031。其中,媒体数据发送单元1042031可以用于通过媒体接口向第二媒体服务模块发送所获取的媒体数据。
第二媒体服务模块1044,用于在接收到媒体数据后,对所述媒体数据进行解码,生成数据帧,将所生成的数据帧发送给第二图形服务模块1046。
第二图形服务模块1046,用于在接收到数据帧后,对所述数据帧进行合成,生成第二图形信息,将所述第二图形信息作为图形处理结果。
在本申请实施例中,媒体应用的解码环境创建子模块104203可以通过调用媒体接口向第二媒体服务模块1044发送处理请求。当第二媒体服务模块1044该处理请求时,解码环境创建子模块104203可以通过媒体数据发送单元1042031,向第二媒体服务模块1044发送所获取的媒体数据,触发第二媒体服务模块1044对该媒体数据进行解码处理。第二媒体服务模块1044对接收到的媒体数据进行解码,生成解码后的数据帧,并将所生成的数据帧输送到第二图形服务模块1046进行合成。
第二图形服务模块1046,用于在接收到数据帧后,对所述数据帧进行合成,生成第二图形信息,将所述第二图形信息作为图形处理结果。
在本申请实施例中的,第二图形服务模块1046可以对控件标志符对应的接口进行监听。当监听到第一操作系统102的控件标志符时,第二图形服务模块1046可以基于第一操作系统102的控件标志符连接第一操作系统102的第一图形服务模块1026,并将所接收到的数据帧合成第二图形,生成第二图形信息。该第二图形信息包括第二图形和第二图形对应的句柄,该句柄用于控制第二图形的显示区域大小以及显示位置。
参照图8,示出了本申请实施中第二操作系统的一种第二图形服务模块的结构框图。
在本申请的一种优选实施例中,第二图形服务模块1046可以包括如下子模块:
监听子模块104601,用于对控件标志符对应的接口进行监听。
连接子模块104603,用于在监听到第一操作系统的控件标志符时,基于所述控件标志符连接第一操作系统的第一图形服务模块。
在本申请实施例中,第二图形服务服务模块可以通过监听子模块104601,实时对控件标志符对应的接口进行监听。当监听到第一操作系统102的控件标志符时,可以确定接收到的数据帧为针对第一操作系统102所发送的媒体处理请求所生成的数据帧,判定该数据帧属于特殊编码方式,将该数据帧合成第二图形和第二图形对应的句柄;通过调用连接子模块104603,基于控件标志符连接第一操作系统102的第一图形服务模块1026,以向第一图形服务模块1026发送所生产的第二图形和该第二图形对应的句柄,从而使得第一操系统102可以给基于该第二图形和该第二图形对应的句柄生成媒体数据对应的播放数据,进而可以在第一操作系统102对该媒体数据进行播放控制。
可选的,第二图形服务模块1046还可以包括如下子模块:
编码判定子模块10465,用于在监听到第一操作系统的控件标志符时,判定所述数据帧属于特殊编码方式。
数据帧合成子模块10467,用于对所述数据帧进行合成,生成第二图形和所述第二图形对应的句柄。
在本申请实施例的一种优选实施例中,解码环境创建子模块104203还可以包括状态信息生成单元1042033。其中,状态信息生成单元1042033可以用于通过软件开发包对所述媒体数据进行解析,生成播放状态信息,将所生成的播放状态信息作为状态处理结果。其中,该播放状态信息可以用于在智能终端的显示界面上显示媒体播放器对应的播放状态,如显示当前播放的进度、媒体播放时长等。其中,媒体播放时长是指该媒体数据播放完毕所需要的时间长度,如视频播放时长为50分钟,是指播放完该视频播放需要50分钟。
在本申请实施例中,媒体应用1042还用于将所述状态处理结果发送到网桥服务模块;第二图形服务模块1046,还用于将所述图形处理结果发送到第一图形服务模块。第二操作系通过调用媒体应用1042以及第二图形服务模块1046将状态处理结果和图形处理结果反馈给第一操系统102,使得第一操系统102可以基于状态处理结果和图形处理结果对该媒体数据进行播放,从而解决了智能终端的第一操作系统102不支持媒体数据对应的媒体数据格式而导致智能终端基于第一操作系统102播放媒体数据失败的问题。
在本申请的一种优选实施例中,网桥服务模块1024还可以包括处理结果转发子模块102408。其中,处理结果转发子模块102408可以用于将接收到的状态处理结果转发给浏览器内核1022。所述浏览器内核1022,还可以用于基于状态处理结果,获取第一图形服务模块1026所接收到的第二图形对应的句柄,依据所述句柄确定目标透明区域,基于所述目标透明区域生成第一图形的内容,将所述第一图形的内容发送到第一图形服务模块1026;第一图形服务模块1026,可以用于基于第一图形的内容生成第一图形,在第一图形的目标透明区域展现第二图形,对所述媒体数据进行播放。
具体的,网桥服务模块1024在接收到媒体应用1042所发送的状态处理结果后,通过调用处理结果转发子模块102408将该状态处理结果转发给浏览器内核1022,使得浏览器内核1022可以基于该状态处理结果对媒体数据进行播放。例如,浏览器内核1022可以对该状态处理结果进行检测,在检测到该状态处理结果包含准备状态数据时,进入媒体播放模式,即进入播放媒体数据的准备状态;在媒体播放模式下,获取第一图形服务模块1026所接收到的第二图形对应的句柄,依据该句柄确定第二图形在第一图形上对应的显示位置和显示区域大小,即确定第二图形在第一图形层的显示区域,将所确定的显示区域设置为目标透明区域。此外,浏览器内核1022还用于从接收到的状态处理结果中提取播放状态数据,采用该播放状态数据和目标透明区域生成第一图形的内容,将所生产的第一图形的内容传输给第一图形服务模块1026,触发第一图形服务模块1026生成第一图形,以在第一图形的目标透明区域展现第二图形,对所述媒体数据进行播放。
在本申请的一种优选实施例中,浏览器内核1022还可以包括如下子模块:
状态数据提取子模块102213,用于从所述状态处理结果中提取播放状态数据。
第一图形内容生成子模块102215,用于采用所述播放状态数据和目标透明区域生成第一图形的内容。
可选的,该浏览器内核1022还包括:区域确定子模块102217、显示区域确定子模块102219和目标透明设置子模块102221。
区域确定子模块102217,用于采用所述句柄确定所述第二图形在第一图形上对应的显示位置和显示区域大小。
显示区域确定子模块102219,用于基于所述显示位置和显示区域大小,确定第二图形在第一图形上的显示区域。
目标透明设置子模块102221,用于将所述显示区域设置为目标透明区域。
显示区域可以包括:目标播放器播放窗口。具体的,浏览器内核可以通过区域确定子模块102217,采用第二图形对应的句柄确定第二图形在第一图形上对应的显示位置和显示区域大小;调用显示区域确定子模块102219,确定第二图形在第一图形上的显示区域,如确定目标播放器播放窗口在网页页面中的显示位置以及播放窗口的大小;通过目标透明设置子模块102221将显示区域设置为目标透明区域,从而使得第一图形服务模块1026可以将第二图形合并到第一图形中,进而可以在目标透明区域展现第二图形,即在目标播放器播放窗口对媒体数据进行播放。
可选的,浏览器内核1022还可以包括:播放模式进入子模块102223和句柄获取子模块102225。其中,播放模式进入子模块102223,用于在检测到所述状态处理结果包含准备状态数据时,基于所述准备状态数据进入媒体播放模式。句柄获取子模块102225,用于在所述媒体播放模式下,获取第一图形服务模块所接收到的第二图形对应的句柄。
基于上述智能终端,进一步论述基于智能终端的媒体数据播放方法,如图9所示,具体可以包括如下步骤:
步骤902,第一操作系统的浏览器内核基于用户操作生成的播放请求,所述播放请求包含所述媒体数据的源信息。
在本申请实施中,用户可以通过智能终端选择其想要播放的媒体。作为本申请的一个具体示例,用户可以通过安装在智能终端的第一操作系统上的浏览器,选择其想要观看的视频,如通过点击操作选中其所需要播放的视频,相当于访问一个含有视频的Html5的网页。第一操作系统的浏览器可以基于用户操作如用户所提交的点击操作,获取用户操作对应的数据源信息,如获取用户操作对应的URL,将URL作为数据源信息,基于所获取的数据源信息生成操作请求。其中,URL包含模式(或称协议)、服务器名称(或IP地址)、路径和文件名等信息,如URL的数据格式可以是“协议://用户名:密码@子域名.域名.顶级域名:端口号/目录/文件名.文件后缀?参数=值#标志”。当数据源信息包含了媒体标签时,如所获取到的URL包含了媒体对应的文件后缀信息,浏览器内核可以将该操作请求确定为播放请求,将播放请求中的数据源信息作为为媒体数据的源信息。媒体数据对应的源信息可以包含媒体标签如视频标签video tag、文件名信息、传输协议等信息。
步骤904,浏览器内核依据所述播放请求检测媒体数据的源信息。
当操作请求为播放请求时,浏览器内核需要对该播放请求中的源信息进行检测,以响应该播放请求。具体的,浏览器内核需要按照媒体数据对应的媒体数据格式对该媒体数据进行解析,以生成该媒体数据对应的播放数据,从而可以依据播放数据对该媒体数据进行播放控制,即响应用户操作对应的播放请求。浏览器内核可以从源信息中提取所述媒体数据对应的媒体标签,基于该媒体标签确定媒体数据对应的媒体数据格式,从而可以判定媒体数据是否符合预置的数据格式,即判断第一操作系统是否可以处理该媒体数据。
在本申请的一个优选实施例中,第一操作系统依据所述播放请求检测媒体数据的源信息,可以包括如下子步骤:
子步骤9041,浏览器内核从源信息中提取所述媒体数据对应的媒体标签。
作为本申请的一个具体示例,浏览器内核可以从媒体数据的源信息中提取媒体标签,采用该媒体标签确定该媒体数据对应的媒体数据格式,以确定第一操系统是否支持该媒体数据对应的媒体数据格式。例如,浏览器内核从用户所访问的网页的URL中提取video tag,相当于从媒体数据的源信息中提取video tag,从而可以基于video tag的数据源data-from属性确定媒体数据对应的媒体数据格式。
子步骤9043,基于所述媒体标签判断所述媒体数据是否符合预置的数据格式。
在本申请实施例中,智能终端的第一操作系统预置了其所支持的数据格式,即预先设置了其可以处理的数据对应的数据格式。作为本申请的一个具体示例,主操作系统预先设置了主操作系统的播放器Host OS player所支持的媒体数据格式,如预置了Host OS player所支持的媒体数据格式,如FlashVideo格式(简称flv格式)。浏览器内核可以基于媒体标签确定媒体数据对应的媒体数据格式,从而可以判断该媒体数据是否符合预置的数据格式。具体的,当媒体数据对应的媒体数据格式为预置的数据格式时,可以判定该媒体数据符合预置的数据格式,如在媒体数据对应的媒体数据格式为flv格式时,可以判定该媒体数据符合Host OS player所支持的媒体数据格式,即可以采用Host OS player对该媒体数据进行处理;当媒体数据对应的媒体数据格式不是预置的数据格式时,可以判定该媒体数据不符合预置的数据格式,如在媒体数据对应的媒体数据格式为qsv格式时,可以判定该媒体数据不符合Host OS player所支持的媒体数据格式,即不可以采用Host OS player对该媒体数据进行处理。其中,qsv格式为第三方所研发的是所研发的一种视频文件格式,可以采用客操作系统的播放器Guest OS Player对qsv格式对应的视频数据进行处理。
子步骤9045,在所述媒体数据不符合预置的数据格式时,确定第一操作系统无法处理所述媒体数据。
在本申请实施例中,浏览器内核在媒体数据不符合预置的数据格式时,即可以确定第一操作系统无法处理该媒体数据,相当于Host OS player不能该媒体数据进行解码处理,可以调用Guest OS Player对该媒体数据进行解码。
步骤906,浏览器内核向所述第一操作系统的网桥服务模块发送所述媒体数据对应的参数信息。
本实施例中,第一操作系统在检测到无法处理所述媒体数据时,执行向第二操作系统发送媒体处理请求的步骤。具体的,当浏览器内核确定第一操作系统无法处理该媒体数据时,可以通过网桥服务模块连接第二操作系统,触发第二操作系统对该媒体数据进行处理,从而获取第二操作系统针对该媒体数据的处理结果。具体而言,浏览器内核可以通过系统接口获取第一操作系统的控件标志符,如第一操作系统的ClientId,将获取到的媒体数据的源信息和第一操作系统的控件标志符作为参数信息,并将参数信息传输给网桥服务模块,触发网桥服务模块向第二操作系统发送媒体处理请求。该媒体处理请求与媒体数据处理有关,可以包含了媒体数据的源信息、应用包名等信息。其中,该应用包名可以依据了媒体数据的源信息确定,用于确定处理该媒体数据的媒体应用。
可选的,所述浏览器内核在向网桥服务模块发送所述媒体数据对应的参数信息之前,还包括:通过系统接口获取第一操作系统的控件标志符;将所述控件标志符和源信息作为所述参数信息。
作为本申请的一个具体示例,浏览器内核WebEngine可以通过Weston所提供的接口获取第一操作系统的ClientId,将获取到的ClientId和媒体数据的URL作为参数信息,向网桥服务模块MediaBridgeService发送。其中,第一操作系统和第二操作系统可以通过该ClientId建立socket连接,以进行通信。
步骤908,网桥服务模块在接收到所述参数信息后,依据所述参数信息生成媒体处理请求,调用通信接口向所述第二操作系统发送媒体处理请求。
网桥服务模块在接收到浏览器内核所发送的参数信息后,可以基于参数信息生成媒体处理请求,向第二操作系统发送该媒体处理请求,触发第二操作系统启动应用包名对应的媒体应用,使得该媒体应用在启动后创建解码环境,对该媒体数据进行解码,以生成该媒体数据的处理结果。例如,网桥服务模块MediaBridgeService在接收到参数信息后,可以通过调用IPC接口,向第二操作系统发送IPC消息,该IPC消息数据包括应用程序包名Application PackageName(简称应用包名)、URL、ClientId等信息,即相当于向第二操系统发送媒体处理请求。
在本申请的一种优选实施例中,网桥服务模块依据所述参数信息生成媒体处理请求,可以包括如下子步骤:
子步骤9081,从所述参数信息中提取源信息,基于所述源信息确定应用包名,所述应用包名用于确定处理所述媒体数据的媒体应用。
在本申请实施例中,网桥服务模块可以依据预置的源信息标识符从参数信息中提取源信息标识符对应的源信息,基于所提取的源信息确定应用包名。该应用包名可以用于确定处理该媒体数据的媒体应用。例如,在媒体数据为视频数据时,应用包名可以具体用于启动第二操作系统的视频应用。其中,该第二操作系统的视频应用可以用于创建子图形Surface和基于第三方的SDK创建媒体播放器MediaPlayer。
子步骤9083,采用所述参数信息以及应用包名,生成所述媒体处理请求。
在本实施例中,网桥服务模块可以通过该浏览器内核所发送的参数信息以及所确定的应用包名生成媒体处理请求,通过调用通信接口,如IPC接口,向第二操作系统发送该媒体处理请求,触发第二操作系统依据该媒体处理请求启动应用名对应的媒体应用。
可选的,网桥服务模块调用通信接口向所述第二操作系统发送媒体处理请求,可以包括如下子步骤:
子步骤9085,调用所述通信接口,基于所述控件标识符与第二操作系统建立双向通信连接。
作为本申请的一个具体示例,网桥服务模块可以从参数信息同提取第一操作系统的ClientId,以及通过调用IPC接口,依据第一操作系统的ClientId与第二操作系统建立双向通信连接,如网桥服务模块可以通过IPC接口,依据第一操作系统的ClientId与第二操作系统的媒体应用Application建立socket连接,从而可以基于该socket连接进行通信。
子步骤9087,基于所述双向通信连接向第二操作系统发送所述媒体处理请求。
具体的,网桥服务模块基于双向通信连接,向第二操作系统发送媒体处理请求,以触发第二操作系统对该媒体数据进行处理。例如,在第二操作系统的媒体应用Application还没有启动时,可以通过该媒体处理请求触发第二操作系统启动应用包名对应的媒体应用Application,使得该媒体应用Application调用准备接口,如Application Prepare接口,进行播放准备工作。
步骤910,第二操作系统基于所述媒体处理请求,启动所述应用包名对应的媒体应用。
第二操作系统在接到网桥服务模块所发送的媒体数据请求后,可以从该媒体处理请求中提取应用包名,如按照预置的包名参数标识符从媒体处理请求中提取包名参数标识符对应的应用包名,从而可以确定处理该媒体数据的媒体应用。在本申请实施例中,第一操作系统可以通过启动该应用包名对应的媒体应用,响应第一操作系统所发送的媒体处理请求,即通过所述媒体应用响应所述媒体处理请求,生成所述媒体数据对应的处理结果。具体的,媒体应用安装有SDK,第二操作系统通过媒体应用调用SDK所提供的接口获取该SDK,通过SDK对该媒体数据进行解析,以生成该媒体数据的处理结果,如调用媒体服务接口创建解码环境,对所述媒体数据进行解码,生成所述处理结果。下文结合具体的解码环境,对本申请实施例进行详细的论述。
步骤912,媒体应用依据所述源信息获取媒体处理请求对应的媒体数据。
在具体实现中,媒体应用在启动后,进入播放准备状态。作为本申请实施例的具体示例,视频应用在启动后,可以根据视频数据的源信息,如视频数据的URL,获取该媒体处理请求对应的视频数据,从而可以依据视频数据创建子图形Surface和基于第三方的SDK创建媒体播放器MediaPlayer,进入视频播放准备状态。
步骤914,媒体应用调用媒体服务接口创建解码环境,对所述媒体数据进行解码,生成所述处理结果。
在本申请实施中,应用媒体在进入播放准备状态后,可以通过调用媒体服务接口连接第二媒体服务模块,如多媒体服务器MediaServer,通过媒体服务模块对所获取到的媒体数据进行解码,即创建解码环境,从而可以生成解码后的数据帧。在生成数据帧后,第二媒体服务模块将所生成的数据帧传输到第二操作系统的第二图形服务模块,如第二操作系统的图形服务器SurfaceFlinger,通过该第二图形服务模块将解码后的数据帧合成图形,从而可以基于所合成的图形生成该媒体数据对应的处理结果,以在智能终端的显示界面上展现该图形
在本申请的一种优选实施例中,媒体应用调用媒体服务接口创建解码环境,对所述媒体数据进行解码,生成所述处理结果,可以包括如下子步骤:
子步骤9141,媒体应用通过媒体接口向第二媒体服务模块发送所获取的媒体数据。
作为本申请的具体示例,媒体应用Application可以通过媒体接口如MediaServer接口,连接第二操作系统的多媒体服务器MediaServer,将获取到的媒体数据发送给该多媒体服务器MediaServer,触发该多媒体服务器MediaServer对该媒体数据进行解码。
子步骤9143,所述第二媒体服务模块在接收到媒体数据后,对所述媒体数据进行解码,生成数据帧,将所生成的数据帧发送给第二图形服务模块。
在本申请实施例中,第二媒体服务模块在接收到媒体应用所发送的媒体数据后,可以对该媒体数据进行解码,如对视频数据或者音频数据进行解码,生成解码后的数据帧。当媒体播放器初始化完成后,即在开始播放媒体数据时,第二媒体服务模块将解码后的数据帧输送到第二操作系统的第二图形服务模块如第二操作系统的图形服务器SurfaceFlinger,以进行合成。例如,在播放视频数据的过程中,第二操作系统的多媒体服务器MediaServer将解码后的数据帧传输到第二操作系统的图形服务器SurfaceFlinger,触发第二操作系统的图形服务器SurfaceFlinger对该数据帧进行合成,生成第二图形信息。
子步骤9145,第二图形服务模块在接收到数据帧后,对所述数据帧进行合成,生成第二图形信息,将所述第二图形信息作为图形处理结果。
具体的,第二图形服务模块在接收到数据帧后,可以在创建图形标签的时候,检测控件标志符对应的接口是否存在第一操系统的控件标识符;若不存在,则按照第二操作系统正常的创建流程,生成第二操作系统的图形信息,以在第二操作系统的媒体播放器播放媒体数据;若存在第一操作系统的控件标识符,则以第一操作系统的控件标识符为参数,通过系统接口(如WaylandConnection接口)连接第一操系统的第一图形服务模块。在连接第一操系统的第一图形服务模块后,对解码后的数据帧进行合成,即生成第二图形信息,将第二图形信息作为图形处理结果,通过建立的连接将图形处理结果传送给第一图形服务模块。
在本申请的一种优选实施例中,第二图形服务模块在接收到数据帧后,还包括:对控件标志符对应的接口进行监听;在监听到第一操作系统的控件标志符时,基于所述控件标志符连接第一操作系统的第一图形服务模块。
作为本申请实施例的一个具体示例,第二图形服务模块可以对控件标志符对应的接口ClientId()进行监听,以检测ClientId()是否有值;如果ClientId()为空,则按照GuestOS正常原有的创建流程对数据帧进行处理,以在GuestOS播放媒体数据;如果ClientId()不为空,则以第一操作系统的控件标志符ClientId为参数,通过WaylandConnection接口连接第一操作系统的图形服务器WestonServer。
可选的,第二图形服务模块在接收到数据帧后,对所述数据帧进行合成,生成第二图形信息,包括:在监听到第一操作系统的控件标志符时,判定所述数据帧属于特殊编码方式;对所述数据帧进行合成,生成第二图形和所述第二图形对应的句柄。
具体的,第二图形服务模块在监听到第一操作系统的控件标志符时,可以判定其所接收到的数据帧为针对第一操作系统所发送的媒体处理请求所生成的数据帧,从而可以判定所述数据帧属于特殊编码方式。第二图形服务模块在确定数据属于特殊编码方式后,可以按照该特殊编码方式对所述数据帧进行合成,生成第二图形和所述第二图形对应的句柄。其中,第二图形对应的句柄可以用于控制第二图形的显示区域大小和显示位置。例如,第二操作系统的图形服务器SurfaceFlinger在检测到第一操作系统的ClientId时,可以根据视图属性如视频视图属性VideoView判断所接收到的数据帧属于特殊编码方式,按照该特殊编码方式对所述数据帧进行合成,生成子图形SubSurface和该子图形SubSurface对应的句柄texture。句柄texture用于控制子图形SubSurface的显示区域大小Size和显示位置。
子步骤9147,媒体应用通过软件开发包对所述媒体数据进行解析,生成播放状态信息,将所生成的状态信息作为状态处理结果。
第二操作系统的媒体应用在创建媒体播放器后,还可以通过SDK对媒体数据进行解析,依据媒体数据的解析生产媒体播放器的播放状态信息,如准备状态数据和播放状态数据等。其中,准备状态数据指的是媒体播放器在初始化阶段所生成的数据,如初始化开始的消息、初始化完成的消息等,可以用于表示媒体播放器当前的准备状态。播放状态数据指的是媒体播放器在播放媒体数据过程中的状态数据,如显示当前播放的进度、媒体播放时长等。媒体应用可以将媒体播放器的播放状态信息作为状态处理结果。
步骤916,第二操作系统将图形处理结果和状态处理结果反馈给第一操系统。
具体的,第二操作系统可以通过媒体应用,将所述状态处理结果发送到网桥服务模块;以及通过第二图形服务模块,将所述图形处理结果发送到第一图形服务模块。作为本申请的一个具体示例,第二操作系统的媒体应用Application可以通过IPC接口向第一操作系统的网桥服务模块MediaBridgeService传送状态处理结果。此外,第二操作系统的图形服务器SurfaceFlinger可以通过WaylandConnection接口,向第一操作系统的的图形服务器WestonServer发送图形处理结果,相当于基于双向通信连接,向第一操作系统发送图形处理结果,如通过wayland协议向第一操作系统的第一图形服务模块传送子图形对应的句柄。
步骤918,第一操作系统基于所述处理结果对所述媒体数据进行响应。
具体的,第一操作系统可以通过网桥服务模块,接收到第二操作系统所反馈的状态处理结果;还可以通过图形服务模块,接收第二操作系统所反馈的图形处理结果。在接收播放状态出处理结果后,第一操作系统可以通过浏览器内核对该状态处理结果进行检测,在检测到该状态处理结果包含准备准备状态数据时,依据该准备状态数据进入媒体播放模式。基于媒体播放模式,第一操作系统通过浏览器内核获取第一图形服务模块所接收到的第二图形对应的句柄,通过该句柄在第一图形层成设置目标透明区域,采用目标透明区域以及网页页面其它内容生成第一图形的内容,即生成第一图形信息;通过调用第一图形服务模块将第一图形信息生产第一图形,将第二图形合并到第一图形的目标透明区域中,生成合成后的图形,从而可以在第一图形的目标显示区域展现第二图形,即对该媒体数据进行播放。
在本申请的一种优选实施例中,第一操作系统基于所述处理结果对所述媒体数据进行播放,可以包括如下子步骤:
子步骤9181,网桥服务模块将接收到的状态处理结果转发给浏览器内核。
在本申请实施例中,网桥服务模块在接收到第二操作系统所反馈的状态处理结果后,可以将接收到的状态处理结果转发给浏览器内核,触发浏览器内体对该状态处理结果进行检测,从而可以在第一操作系统中对媒体数据进行播放。
子步骤9183,浏览器内核基于状态处理结果,获取第一图形服务模块所接收到的第二图形对应的句柄,依据所述句柄确定目标透明区域,基于所述目标透明区域生成第一图形的内容,将所述第一图形的内容发送到第一图形服务模块。
在本申请的一种优选实施例中,浏览器内核基于状态处理结果,获取第一图形服务模块所接收到的第二图形对应的句柄,具体可以包括:在检测到所述状态处理结果包含准备状态数据时,基于所述准备状态数据进入媒体播放模式;在所述媒体播放模式下,获取第一图形服务模块所接收到的第二图形对应的句柄。
具体的,浏览器内核可以对接收到的状态处理结果进行检测,从状态处理结果中获取媒体应用针对该媒体数据所生成的状态数据。当提取到的状态数据为准备状态数据时,即在检测到状态处理结果包含准备状态数据时,可以确定第二操作系统的媒体应用进入播放准备阶段,进而进入媒体播放模式,准备播放媒体数据。浏览器内核在媒体播放模拟式下,通过调用第一图形服务模块对应的接口,获取第一图形服务模块所接收到的句柄。例如,浏览器内核Webengine通过第一操作系统的图形服务器模块WestonServer获取到子图形SubSurface的句柄texture。
在本申请实施例中,浏览器内核依据句柄确定第二图形对应的目标透明区域,具体可以包括:采用所述句柄确定所述第二图形在第一图形上对应的显示位置和显示区域大小;基于所述显示位置和显示区域大小,确定第二图形在第一图形上的显示区域;将所述显示区域设置为目标透明区域。
具体的,浏览器内核可以依据句柄确定第二图形在第一图形层上对应的显示区域大小,如第二图形对应的播放窗口的大小;以及确定第二图形在第一图形层上的显示位置,如确定播放窗口在网页页面中的显示位置,依据所确定的显示区域大小和显示位置,确定一个矩形区域,将该矩形区域作为第二图形在第一图形上的显示区域,并且把该矩形区域设置为透明显示区域作为目标透明区域,即将第二图形在第一图形上的显示区域设置为目标透明区域,以将第二图形纺织到该目标透明区域中,实现在第一操作系统中对第二图形进行展现,即在第一操作系统中播放媒体数据。其中,显示区域可以包括:目标播放器播放窗口、网页播放窗口等,目标播播放器播放窗口指的是当前运行的播放器应用程序对应的播放窗口。
在本申请的一种优选实施例中,浏览器内核在基于所述目标透明区域生成第一图形的内容之前,还包括:从所述状态处理结果中提取播放状态数据;则所述基于所述目标透明区域生成第一图形的内容,包括:采用所述播放状态数据和目标透明区域生成第一图形的内容。
在本申请实施例中,浏览器内核对状态处理结果进行检测,在状态处理结果中包含媒体应用对应的播放状态数据时,还可以从该状态处理结果中提取播放状态数据,基于所提取播放状态数据、目标透明区域等信息生成第一图形的内容,将所生成的第一图形的内容发送到第一图形服务模块,通过第一图形服务模块对第一图形的内容进行合成,以生成第一图形。
子步骤9185,第一图形服务模块基于第一图形的内容生成第一图形,在第一图形的目标透明区域展现第二图形,对所述媒体数据进行播放。
第一图形服务模块在接收到第一图形的内容后,可以依据第一图形的内容生产第一图形,并且将第二图形服务模块所发送的第二图形合并到第一图形的目标透明区域中,生成合成后的图形,从而可以在第一图形的目标显示区域展现第二图形。智能终端的第一操作系统通过在显示界面对合成后的图形进行展现,播放媒体数据,实现了智能终端的媒体播放功能。
在本申请实施例中,智能终端的第一操作系统在检测到无法处理媒体数据时,通过网桥服务模块连接第二操作系统,从而触发第二操作系统启动媒体应用对该媒体数据进行处理,生成处理结果,从而可以基于第二操作系统所生成的处理结果对媒体数据进行播放,实现智能终端的媒体播放功能。
实施例二
基于上述实施例,本实施例论述位于操作系统侧的媒体数据播放方法和装置。
参照图10,示出了本申请实施例中基于第一操作系统的媒体数据播放方法,具体可以包括以下步骤:
步骤1002,基于用户操作生成播放请求。
步骤1004,在所述媒体数据不符合预置的数据格式时,向第二操作系统发送媒体处理请求。
步骤1006,接收所述第二操作系统针对所述媒体处理请求反馈的处理结果,基于所述处理结果对所述媒体数据进行响应。
本实施例中,位于第一操作系统的媒体数据播放装置可以接收到用户操作,以及基于用户操作生成播放请求。其中,在所述播放请求包含媒体数据的源信息。具体的,通过检测该媒体数据的源信息,可以确定该媒体数据是否符合预置的数据格式,即判断第一操作系统是否可以对该媒体数据进行解析。当媒体数据不符合预置的数据格式时,该媒体数据播放装置可以针对该媒体数据生成媒体处理请求,并发送给第二操作系统,从而可以接收到第二操作系统针对所述媒体处理请求反馈的处理结果,基于该处理结果对媒体数据进行响应,即通过第二操作系统对该媒体数据进行解析,实现了对媒体数据的解析,从而可以对该媒体数据进行播放控制,实现媒体播放功能。
在本申请的一种优选实施例中,该媒体数据播放方法,在生成播放请求之后还包括判断所述媒体数据是否符合预置的数据格式的步骤,包括:从所述源信息中提取所述媒体数据对应的媒体标签;基于所述媒体标签判断所述媒体数据是否符合预置的数据格式。
具体而言,播放请求模块可以对媒体数据的源信息进行检测,从源信息中提取所述媒体数据对应的媒体标签,从而可以基于该媒体标签确定该媒体数据对应的数据格式,以及判断该媒体数据对应的数据格式是否符合预置的数据格式。当媒体数据对应的数据格式不符合预置的数据格式时,可以确定该媒体数据不符合预置的数据格式,即确定第一操作系统无法对该媒体数据进行解析。因此,媒体数据播放装置可以针对该媒体数据生成媒体处理请求,并发送给第二操作系统,通过第二操作系统对该媒体数据进行解析,从而完成该媒体数据的处理。
可选的,所述向第二操作系统发送媒体请求,具体可以包括以下子步骤:
子步骤10041,调用通信接口,基于所述控件标识符与第二操作系统建立双向通信连接。
子步骤10043,基于所述双向通信连接向第二操作系统发送所述媒体处理请求。
本实施例中,媒体数据播放装置通过调用通信接口,从而可以连接第二操作系统。具体的,通过通信接口将第一操作系统的控件标识符传输给第二操作系统,从而可以基于所述控件标识符建立第一操作系统与第二操作系统之间的双向通信连接,以及基于所述双向通信连接向第二操作系统发送所述媒体处理请求;并且还可以基于该双向通行连接接收第二操作系统反馈的处理结果。
在本申请的一种优选实施例中,第二操作系统反馈的处理结果包括:状态处理结果和图像处理结果。其中,所述基于所述处理结果对所述媒体数据进行响应,可以包括如下子步骤:
子步骤10061,基于状态处理结果,从图像处理结果中获取第二图形对应的句柄。
子步骤10063,依据所述句柄确定目标透明区域,并基于所述目标透明区域生成第一图形的内容;
子步骤10065,基于第一图形的内容生成第一图形;
子步骤10066,在第一图形的目标透明区域展现第二图形,对所述媒体数据进行播放控制。
本实施例中,媒体数据播放装置可以基于状态处理结果,从图像处理结果中获取第二图形对应的句柄,以及依据所述句柄确定目标透明区域,并基于所述目标透明区域生成第一图形的内容;以及基于第一图形的内容生成第一图形,从而可以在第一图形的目标透明区域展现第二图形,对所述媒体数据进行播放控制。
可选的,所述基于状态处理结果,从图像处理结果中获取第二图形对应的句柄,具体可以包括:在检测到所述状态处理结果包含准备状态数据时,基于所述准备状态数据进入媒体播放模式;在所述媒体播放模式下,从图像处理结果中获取第二图形对应的句柄。具体而言,位于第一操作系统中的媒体数据播放装置在接收到状态处理结果后,可以对状态处理结果进行检测,当检测到状态处理结果包含准备状态数据时,可以确定第二操作系统已经创建解码环境并完成初始化,进而基于所述准备状态数据进入媒体播放模式,以及在媒体播放模式下,从图像处理结果中获取第二图形对应的句柄,从而可以依据该句柄确定媒体数据对应的显示区域。
可选的,该媒体数据播放装置在基于所述目标透明区域生成第一图形的内容之前,还可以从所述状态处理结果中提取播放状态数据,从而可以采用所述播放状态数据和目标透明区域生成第一图形的内容。在本实施例中,媒体数据播放装置可以位于操作系统中,具体可以位于上述任一实施例中的第一操作系统中。
参照图11,示出了本申请实施例的一种媒体数据播放装置的结构框图,具体可以包括如下模块:
播放请求模块1102,用于基于用户操作生成播放请求,所述播放请求包含媒体数据的源信息;
处理请求模块1104,用于在所述媒体数据不符合预置的数据格式时,向第二操作系统发送媒体处理请求
媒体响应模块1106,用于基于第二操作系统针对所述媒体处理请求反馈的处理结果对所述媒体数据进行响应。
在本申请的一种优选实施例中,所述媒体数据播放装置,还可以包括如下模块:
标签提取模块1108,用于从所述源信息中提取所述媒体数据对应的媒体标签。
媒体判断模块1110,用于基于所述媒体标签判断所述媒体数据是否符合预置的数据格式。
标志符获取模块1112,用于通过系统接口获取第一操作系统的控件标志符。
参数信息确定模块1114,用于将所述控件标志符和源信息作为所述媒体数据对应的参数信息。
其中,处理请求模块1104,用于依据所述媒体数据对应的参数信息生成媒体处理请求,以及向第二操作系统发送媒体请求。
在本申请的一种优选实施例中,所述处理请求模块1104,可以包括如下子模块:
通信建立子模块11041,用于调用通信接口,基于所述控件标识符与第二操作系统建立双向通信连接。
处理请求发送子模块11043,用于基于所述双向通信连接向第二操作系统发送所述媒体处理请求。
本实施例中,第二操作系统反馈的处理结果可以包括:状态处理结果和图像处理结果。媒体响应模块1106,可以包括如下子模块:
句柄获取子模块11061,用于基于状态处理结果,从图像处理结果中获取第二图形对应的句柄。
内容生成子模块11063,用于依据所述句柄确定目标透明区域,并基于所述目标透明区域生成第一图形的内容。
图形生成子模块11065,用于基于第一图形的内容生成第一图形。
响应子模块11067,用于在第一图形的目标透明区域展现第二图形,对所述媒体数据进行播放控制。
可选的,所述句柄获取子模块11061,具体可以用于在检测到所述状态处理结果包含准备状态数据时,基于所述准备状态数据进入媒体播放模式;以及,在所述媒体播放模式下,从图像处理结果中获取第二图形对应的句柄。
可选的,所述媒体响应模块1106,还可以包括:状态数据提取子模块11069,用于从所述状态处理结果中提取播放状态数据。内容生成子模块11065,具体可以用于采用所述播放状态数据和目标透明区域生成第一图形的内容。
参照图12,示出了本申请实施例中基于第二操作系统的媒体数据播放方法,具体可以包括以下步骤:
步骤1202,接收第一操作系统发送的媒体处理请求。
步骤1204,依据所述媒体处理请求对媒体数据进行处理,生成处理结果。
步骤1206,将所述处理结果反馈给第一操作系统。
从而使得第一操作系统可以基于处理结果对媒体数据进行播放控制,满足用户的播放需求,提高用户体检。
在本申请的一种优选实施例中,依据所述媒体处理请求对媒体数据进行处理,生成处理结果,可以包括如下子步骤:
子步骤12031,用于基于所述媒体处理请求,启动应用包名对应的媒体应用。其中,所述应用包名依据媒体处理请求所携带媒体数据的源信息确定。
子步骤12033,通过所述媒体应用响应所述媒体处理请求,生成所述媒体数据对应的处理结果。
可选的,通过所述媒体应用响应所述媒体处理请求,生成所述媒体数据对应的处理结果,具体可以包括:依据所述媒体处理请求携带的源信息获取对应的媒体数据;对所述媒体数据进行解码,生成数据帧;对所述数据帧进行合成,生成第二图形信息,并将所述第二图形信息作为图形处理结果。
在本申请的一种优选实施例中,所述生成所述媒体数据对应的处理结果,还包括:对控件标志符对应的接口进行监听。其中,所述对所述数据帧进行合成,生成第二图形信息,包括:在监听到第一操作系统的控件标志符时,判定所述数据帧属于特殊编码方式;对所述数据帧进行合成,生成第二图形和所述第二图形对应的句柄。
在本申请的一种优选实施例中,通过所述媒体应用响应所述媒体处理请求,生成所述媒体数据对应的处理结果,还可以包括:媒体应用通过软件开发包对所述媒体数据进行解析,生成播放状态信息;将所生成的播放状态信息作为状态处理结果。
可选的,所述将所述处理结果反馈给第一操作系统,包括:基于所述双向通信连接,分别将状态处理结果图形和处理结果发送给第一操作系统。
参照图13,示出了本实施例的另一种媒体数据播放装置的结构框图,具体可以包括以下模块:
接收模块1302,用于接收第一操作系统发送的媒体处理请求;
媒体处理模块1304,用于依据所述媒体处理请求对媒体数据进行处理,生成处理结果;
反馈模块1306,用于将所述处理结果反馈给第一操作系统
在本实施例的媒体数据播放装置也可以位操作系统,具体可以位于上述任一实施例中的第二操作系统中。
可选的,所述媒体处理模块1304,包括以下子模块:
应用启动子模块13041,用于基于所述媒体处理请求,启动应用包名对应的媒体应用。其中,所述应用包名依据媒体处理请求所携带媒体数据的源信息确定。
结果生成子模块13042,用于通过所述媒体应用响应所述媒体处理请求,生成所述媒体数据对应的处理结果。
可选的,所述结果生成子模块13042,可以包括以下单元:
媒体数据获取单元,用于依据所述媒体处理请求携带的源信息获取对应的媒体数据。
媒体数据解码单元,用于对所述媒体数据进行解码,生成数据帧。
图形结果生成单元,用于对所述数据帧进行合成,生成第二图形信息,并将所述第二图形信息作为图形处理结果。
在本申请的一种优选实施例中,结果生成子模块13042,还可以包括以下单元:
监听子单元,用于对控件标志符对应的接口进行监听。
编码判定单元,用于在监听到第一操作系统的控件标志符时,判定所述数据帧属于特殊编码方式。
其中,数据帧合成单元,具体用于对所述数据帧进行合成,生成第二图形和所述第二图形对应的句柄。
媒体数据解析单元,用于媒体应用通过软件开发包对所述媒体数据进行解析,生成播放状态信息;
状态结果生成单元,用于将所生成的播放状态信息作为状态处理结果。
在本申请的一种优选实施例中,所述反馈模块1306,具体用于基于所述双向通信连接,将状态处理结果和图形处理结果发送给第一操作系统。。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
在上述实施例的基础上,本实施例还公开了一种智能终端。
参照图14,示出了本申请实施例的又一种智能终端的结构框图。具体的,该智能终端1400包括:存储器1410、显示器1420、处理器1430和输入单元1440。
其中,该输入单元1440可用于接收用户输入的数字或字符信息,以及控制信号。具体地,本申请实施例中,该输入单元1440可以包括触摸屏1441,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触摸屏1441上的操作),并根据预先设定的程式驱动相应的连接装置。当然,除了触摸屏1441,输入单元1440还可以包括其他输入设备,如物理键盘、功能键(比如音量控制按键、开关按键等)、鼠标等。
显示器1420包括显示面板,可选的,可以采用液晶显示器(Liquid CrystalDisplay,LCD)或有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板。其中,触摸屏可以覆盖显示面板,形成触摸显示屏,当该触摸显示屏检测到在其上或附近的触摸操作后,传送给处理器1430以执行相应的处理。
在本申请实施例中,通过调用存储该存储器1410内的软件程序,和/或,模块,和/或,数据,处理器1430用于第一操作系统通过调用通信接口向所述第二操作系统发送媒体处理请求;第二操作系统接收到媒体处理请求后,依据所述媒体处理请求对媒体数据进行处理,生成处理结果,将所述处理结果反馈给第一操作系统;第一操作系统接收到所述处理结果,基于所述处理结果对所述媒体数据进行响应。
可选的,处理器1430还用于第一操作系统的浏览器内核基于用户操作生成的播放请求,所述播放请求包含所述媒体数据的源信息;以及第一操作系统依据所述播放请求检测媒体数据的源信息,当第一操作系统检测到无法处理所述媒体数据时,执行向第二操作系统发送媒体处理请求的步骤。
可选的,所述源信息包括媒体标签,第一操作系统依据所述播放请求检测媒体数据的源信息,包括:所述浏览器内核从源信息中提取所述媒体数据对应的媒体标签;基于所述媒体标签判断所述媒体数据是否符合预置的数据格式;在所述媒体数据不符合预置的数据格式时,确定第一操作系统无法处理所述媒体数据。
可选的,所述第一操作系统通过通信接口向所述第二操作系统发送媒体处理请求,包括:浏览器内核向所述第一操作系统的网桥服务模块发送所述媒体数据对应的参数信息;网桥服务模块在接收到所述参数信息后,依据所述参数信息生成媒体处理请求,调用通信接口向所述第二操作系统发送媒体处理请求。
可选的,所述浏览器内核在向网桥服务模块发送所述媒体数据对应的参数信息之前,还包括:通过系统接口获取第一操作系统的控件标志符;将所述控件标志符和源信息作为所述参数信息。
可选的,网桥服务模块依据所述参数信息生成媒体处理请求,包括:从所述参数信息中提取源信息,基于所述源信息确定应用包名,所述应用包名用于确定处理所述媒体数据的媒体应用;采用所述参数信息以及应用包名,生成所述媒体处理请求。
可选的,网桥服务模块调用通信接口向所述第二操作系统发送媒体处理请求,包括:调用所述通信接口,基于所述控件标识符与第二操作系统建立双向通信连接;基于所述双向通信连接向第二操作系统发送所述媒体处理请求。
可选的,第二操作系统依据所述媒体处理请求对媒体数据进行处理,生成处理结果,包括:基于所述媒体处理请求,启动所述应用包名对应的媒体应用;通过所述媒体应用响应所述媒体处理请求,生成所述媒体数据对应的处理结果。
可选的,通过所述媒体应用响应所述媒体处理请求,生成所述媒体数据对应的处理结果,包括:媒体应用依据所述源信息获取媒体处理请求对应的媒体数据;媒体应用调用媒体服务接口创建解码环境,对所述媒体数据进行解码,生成所述处理结果。
可选的,媒体应用调用媒体服务接口创建解码环境,对所述媒体数据进行解码,生成所述处理结果,包括:媒体应用通过媒体接口向第二媒体服务模块发送所获取的媒体数据;所述第二媒体服务模块在接收到媒体数据后,对所述媒体数据进行解码,生成数据帧,将所生成的数据帧发送给第二图形服务模块;第二图形服务模块在接收到数据帧后,对所述数据帧进行合成,生成第二图形信息,将所述第二图形信息作为图形处理结果。
可选的,第二图形服务模块在接收到数据帧后,还包括:对控件标志符对应的接口进行监听;在监听到第一操作系统的控件标志符时,基于所述控件标志符连接第一操作系统的第一图形服务模块。
可选的,所述第二图形服务模块在接收到数据帧后,对所述数据帧进行合成,生成第二图形信息,包括:在监听到第一操作系统的控件标志符时,判定所述数据帧属于特殊编码方式;对所述数据帧进行合成,生成第二图形和所述第二图形对应的句柄。
可选的,媒体应用调用媒体服务接口创建解码环境,对所述媒体数据进行解码,生成所述处理结果,还包括:所述媒体应用通过软件开发包对所述媒体数据进行解析,生成播放状态信息,将所生成的播放状态信息作为状态处理结果。
可选的,第二操作系统将所述处理结果反馈给第一操作系统,包括:媒体应用将所述状态处理结果发送到网桥服务模块;第二图形服务模块将所述图形处理结果发送到第一图形服务模块。
可选的,第一操作系统基于所述处理结果对所述媒体数据进行响应,包括:网桥服务模块将接收到的状态处理结果转发给浏览器内核;浏览器内核基于状态处理结果,获取第一图形服务模块所接收到的第二图形对应的句柄,依据所述句柄确定目标透明区域,基于所述目标透明区域生成第一图形的内容,将所述第一图形的内容发送到第一图形服务模块;第一图形服务模块基于第一图形的内容生成第一图形,在第一图形的目标透明区域展现第二图形,对所述媒体数据进行播放控制。
可选的,所述浏览器内核基于状态处理结果,获取第一图形服务模块所接收到的第二图形对应的句柄,包括:在检测到所述状态处理结果包含准备状态数据时,基于所述准备状态数据进入媒体播放模式;在所述媒体播放模式下,获取第一图形服务模块所接收到的第二图形对应的句柄。
可选的,浏览器内核在基于所述目标透明区域生成第一图形的内容之前,还包括:从所述状态处理结果中提取播放状态数据;则所述基于所述目标透明区域生成第一图形的内容,包括:采用所述播放状态数据和目标透明区域生成第一图形的内容。
可选的,浏览器内核依据所述句柄确定第二图形对应的目标透明区域,包括:采用所述句柄确定所述第二图形在第一图形上对应的显示位置和显示区域大小;基于所述显示位置和显示区域大小,确定第二图形在第一图形上的显示区域;将所述显示区域设置为目标透明区域。
可选的,所述显示区域包括:目标播放器播放窗口。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种媒体数据播放方法和装置、基于智能终端的媒体数据播放方法和一种智能终端,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。