机顶盒的媒体播放控制方法、装置、设备及存储介质与流程

文档序号:16065664发布日期:2018-11-24 12:38阅读:201来源:国知局

本发明实施例涉及机顶盒技术领域,尤其涉及一种机顶盒的媒体播放控制方法、装置、设备及存储介质。

背景技术

目前的交互式网络电视(iptv)机顶盒是由机顶盒内置的浏览器来解析服务器下发的页面,并自动执行页面中的java脚本,实现对媒体播放的控制。机顶盒的媒体播放中间件通过扩展javascript的对象和方法来提供媒体播放能力。但是,由于扩展javascript的对象和方法与媒体播放的控制位于不同的进程,加之二者是并发执行的,所以二者无法同步执行,容易造成执行混乱,甚至系统不稳定。



技术实现要素:

本发明实施例提供一种机顶盒的媒体播放控制方法、装置、设备及存储介质,用以提高机顶盒媒体播放的稳定性。

本发明实施例第一方面提供一种机顶盒的媒体播放控制方法,包括:

获取目标接口发送的媒体播放控制消息,所述媒体播放控制消息为所述机顶盒的中间件通过扩展页面的脚本获得的;

基于所述媒体播放控制消息对所述页面上的媒体进行播放控制。

在一种可能的设计中,所述获取目标接口发送的媒体播放控制消息,包括:

从预设的消息队列中获取目标接口发送的媒体播放控制消息。

在一种可能的设计中,所述从预设的消息队列中获取目标接口发送的媒体播放控制消息,包括:

判断所述消息队列中是否存在符合预设无效条件的无效控制消息;

若存在,则在清除所述无效控制消息后,再从所述消息队列中获取媒体播放控制消息。

在一种可能的设计中,所述媒体播放控制消息中包括第二播放状态的控制指令;

所述基于所述媒体播放控制消息对所述页面上的媒体进行播放控制,包括:

基于所述第二播放状态的控制指令将所述页面上的媒体由当前的第一播放状态切换到所述第二播放状态。

本发明实施例第二方面提供一种媒体播放控制装置,包括:

获取模块,用于获取目标接口发送的媒体播放控制消息,所述媒体播放控制消息为所述机顶盒的中间件通过扩展页面的脚本获得的;

控制模块,用于基于所述媒体播放控制消息对所述页面上的媒体进行播放控制。

在一种可能的设计中,所述获取模块,包括:

获取子模块,用于从预设的消息队列中获取目标接口发送的媒体播放控制消息。

在一种可能的设计中,所述获取子模块,具体用于:

判断所述消息队列中是否存在符合预设无效条件的无效控制消息;

若存在,则在清除所述无效控制消息后,再从所述消息队列中获取媒体播放控制消息。

在一种可能的设计中,所述媒体播放控制消息中包括第二播放状态的控制指令;

所述控制模块,具体用于基于所述第二播放状态的控制指令将所述页面上的媒体由当前的第一播放状态切换到所述第二播放状态。

本发明实施例第三方面提供一种机顶盒,包括:

处理器;

存储器,用于存储所述处理器的可执行指令;

当所述处理器执行所述可执行指令时,可以执行上述第一方面所述的方法。

本发明实施例第四方面提供一种计算机可读存储介质,包括指令,当所述指令在所述计算机上运行时,所述计算机可以执行上述第一方面所述的方法。

本发明实施例,通过获取目标接口发送的媒体播放控制消息,其中媒体播放控制消息是由机顶盒的中间件对页面脚本执行扩展操作后得到的,并基于该媒体播放控制消息对页面上的媒体进行播放控制。从而本发明实施例通过建立页面脚本扩展与媒体播放控制之间的逻辑关系,避免了现有技术中因二者并行执行所造成的执行混乱的问题,提高了机顶盒媒体播放的稳定性,增强了用户体验。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种机顶盒的媒体播放控制方法的流程图;

图2是本发明实施例提供的一种播放状态之间的转换关系示意图;

图3是本发明实施例提供的一种机顶盒的媒体播放控制方法的流程图;

图4是本实施例提供的一种媒体播放控制的架构示意图;

图5是本发明实施例提供的一种媒体播放控制装置的结构示意图;

图6是本发明实施例提供的一种获取模块51的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的说明书和权利要求书的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤的过程或结构的装置不必限于清楚地列出的那些结构或步骤而是可包括没有清楚地列出的或对于这些过程或装置固有的其它步骤或结构。

在现有技术中,基于浏览器的iptv机顶盒媒体播放系统是由服务器下发页面,页面中含有媒体播放的脚本。机顶盒的浏览器对页面进行解析,展示页面内容,同时通过扩展javascript的对象和方法,来实现内嵌播放器的媒体播放能力。这种方法是目前基于浏览器的iptv机顶盒普遍采用的方法。

但是如何扩展javascrip的对象和方法,各个机顶盒中间件开发厂商,采用的方法各不相同。比如在现有的一种设计中是通过电子节目指南服务器下发包括扩展脚本的电子节目指南页面,机顶盒中间件根据扩展脚本创建控制对象,对播放器进行控制,实现了服务器主动控制机顶盒视频播放的功能。但是在该方法中播放器控制依赖于扩展脚本,由于iptv的业务逻辑非常多,而且页面脚本的扩展和播放器控制的实现位于不同的进程,因而当二者出现步调不一致时,媒体的播放和显示就会出现混乱;而且播放逻辑依赖于页面脚本会使得为扩展脚本和对象而提供的接口容错性很差。

特别是为了提高开发的效率,在iptv机顶盒中常常只提供一个控制媒体播放的中间件,该中间件独立于不同的电子节目指南(electronicprogramguide,简称epg)平台,也就是需要适应各种类型的epg页面。目前的中间件对接的产品中当出现调用逻辑问题时都是通过替换页面,修改其调用逻辑来解决问题的。这种方法使得开发效率低下,而且使得中间件的通用性的优势大大降低。

针对现有技术存在的上述问题,本发明实施例提供了一种机顶盒的媒体播放控制方法,与现有技术不同的是该方法建立了页面脚本扩展与媒体播放控制之间的逻辑顺序,避免了二者并行执行所造成的执行混乱的问题,提高了机顶盒媒体播放的稳定性,增强了用户体验。

下面结合附图以及具体实施例对本发明的技术方案进行详细的描述:

图1是本发明实施例提供的一种机顶盒的媒体播放控制方法的流程图,该方法可以由一种媒体播放控制装置来执行,该媒体播放控制装置可以搭载在机顶盒上,尤其是可以搭载在iptv机顶盒上。如图1所示,本实施例提供的方法包括:

步骤101、获取目标接口发送的媒体播放控制消息,所述媒体播放控制消息为所述机顶盒的中间件通过扩展页面的脚本获得的。

本实施例中的页面包括媒体内容(比如音频、视频等),该媒体内容通过机顶盒的播放器进行播放。该页面通过网络侧的服务器下发到机顶盒上。

本实施例中的机顶盒可以是任意型号或类型的机顶盒,为了方便理解本领域技术人员可以以iptv机顶盒为例来理解本实施例提供的技术方案。本实施例提供的机顶盒包括浏览器,该浏览器对服务器下发页面中的脚本进行解析并对页面进行显示。机顶盒的中间件通过扩展页面中的脚本来获得媒体播放控制消息。该媒体播放控制消息可用于对上述页面上的媒体进行播放控制,比如控制媒体播放,快进、停止、暂停等,但不局限于上述示例的几种媒体控制。

进一步的,在获得媒体播放控制消息后,中间件可以直接通过目标接口将该媒体播放控制消息发送给媒体播放控制装置,或者也可以通过目标接口将媒体播放控制消息发送到预设的消息队列中,媒体播放控制装置从该消息队列中获取媒体播放控制消息。其中,上述对于“目标接口”的命名仅是为了将用于发送媒体播放控制消息的接口与机顶盒中的其他接口进行区别,并不具有其他含义。

步骤102、基于所述媒体播放控制消息对所述页面上的媒体进行播放控制。

为了叙述清楚本实施例将媒体当前的播放状态(比如,正常播放、快进或倒退等,但不局限于示例中的这几种播放状态),称为第一播放状态,将基于上述媒体播放控制消息控制得到的播放状态称为第二播放状态,也就是说,本实施例中涉及的媒体播放控制消息可以包括可将媒体播放状态切换为第二播放状态的控制指令。当媒体播放控制装置获取到媒体播放控制消息时根据该控制指令将媒体从当前的第一播放状态切换到第二播放状态。

举例来说,本实施例可以根据iptv的业务逻辑将媒体播放状态划分为两个一级状态:直播状态(livefsm)、点播状态(vodfsm)。每个一级状态又划分为若干二级子状态:其中,livefsm包括初始状态(initstate)/打开状态(openstate)/播放状态(playstate)/暂停状态(pausestate)/倍速状态(trickstate)/时移状态(timeshiftstate)/停止状态(stopstate)/断网状态(netdownstate)/空闲状态(idlestate);vodfsm包括初始状态(initstate)/打开状态(openstate)/播放状态(playstate)/暂停状态(pausestate)/倍速状态(trickstate)/停止状态(stopstate)/断网状态(netdownstate)/空闲状态(idlestate)。其中,各子状态之间的转换关系可以示例性的由图2表示。也就是说,本实施例中第一播放状态和第二播放状态可以是图2中任意两个通过曲线直接连接的播放状态。当然上述仅为示例说明而不是对本发明的唯一限定。

或者,本实施例中的媒体播放控制消息还可以包括用于描述播放状态的信息,媒体播放控制装置在获取到媒体播放控制消息时,将媒体当前的播放状态转换为媒体播放控制消息所描述的播放状态。

另外,在上述控制方法的基础上,为了提高机顶盒媒体播放的容错能力,媒体播放控制装置在接收到媒体播放控制消息后,还可以根据预设策略对该媒体播放控制消息的有效性进行判定,若判断有效,则基于该媒体播放控制消息进行播放控制,若判断无效,则不进行控制。并且上述策略可以根据需要进行设定,本实施例中不做具体限定。

本实施例,通过获取目标接口发送的媒体播放控制消息,其中媒体播放控制消息是由机顶盒的中间件对页面脚本执行扩展操作后得到的,并基于该媒体播放控制消息对页面上的媒体进行播放控制,从而本实施例通过建立页面脚本扩展与媒体播放控制之间的逻辑关系,避免了现有技术中因二者并行执行所造成的执行混乱的问题,提高了机顶盒媒体播放的稳定性,增强了用户体验。

下面结合附图对上述实施例的技术方案进行进一步的优化和扩展。

图3是本发明实施例提供的一种机顶盒的媒体播放控制方法的流程图,在该方法中,目标接口将媒体播放控制消息发送到预设的消息列表中,媒体播放控制装置从消息列表中获取媒体播放控制消息。具体的,图3所示方法在图1实施例的基础上包括:

步骤201、判断预设的消息队列中是否存在符合预设无效条件的无效控制消息,若存在,则执行步骤202,否则执行步骤203。

本实施例中所称的无效条件可以根据需要进行设定。

举例来说,当用户连续按住换台键时,消息队列里会有大量用于控制换台的媒体播放控制消息,假设,这些媒体播放控制消息按照进入消息队列的顺序依次为a、b、c、d,则可以将a、b、c设定为无效控制消息,只需响d即可,这一方面提高了换台的速度,另一方面也提高了系统的稳定性。当然这里仅为举例说明而不是对本发明的唯一限定。

步骤202、在清除所述无效控制消息后,再从所述消息队列中获取媒体播放控制消息。

承接上例,假设消息队列中存在上述举例中的媒体播放控制消息,a、b、c、d时,则从消息队里中清除a、b、c,获取媒体播放控制消息d。当然这里仅为示例说明而不是对本发明的唯一限定。

步骤203、直接从消息队列中获取媒体播放控制消息。

步骤204、基于所述媒体播放控制消息对所述页面上的媒体进行播放控制。

本实施例,通过预设的无效条件对消息队列中的无效控制消息进行清理,并从清理后的消息队列中获取用于播放控制的媒体播放控制消息,从而提高了机顶盒媒体播放的稳定性和容错性。

图4是本实施例提供的一种媒体播放控制的架构示意图,如图4所示,在图4中页面脚本扩展和媒体播放控制位于不同的进程。二者是通过binder进行通信的。媒体播放服务(hsmediaplayerservice)层为上层提供了所有的接口。这些接口的实现基于播放管理(playmanager)层。playmanager层建立了消息队列。hsmediaplayerservice层对媒体播放的控制都是通过向playmanager层的消息队列发送媒体播放控制消息实现的。playmanager层会不断地读取消息队列里面的媒体播放控制消息,然后丢给fsm进行处理。fsm是iptv媒体播放的状态机。该状态机是由若干不同的iptv子状态(可参见图2的示例)组成的。fsm收到媒体播放控制消息后调用预先定义的状态转换的处理动作。fsm对于收到的不符合预设条件的媒体播放控制消息,则不作处理。从而相当于丢弃了不合条件的媒体播放控制消息,提高了媒体播放的稳定性和容错性。另外,playmanager层还可以基于预设的无效条件对消息对列中的媒体播放控制消息进行判断,清除无效的媒体播放控制消息,将有效的媒体播放控制消息抛给fsm进行处理,从而避免处理无效控制消息对机顶盒性能造成影响,比如:当用户连续按住换台键时,消息队列里会有大量用于控制换台的媒体播放控制消息,假设,这些媒体播放控制消息按照进入消息队列的顺序依次为a、b、c、d,则可以将a、b、c设定为无效控制消息,只需响d即可,这一方面提高了换台的速度,另一方面也提高了系统的稳定性。当然这里仅为举例说明而不是对本发明的唯一限定。

图5是本发明实施例提供的一种媒体播放控制装置的结构示意图,如图5所示,该装置包括:

获取模块51,用于获取目标接口发送的媒体播放控制消息,所述媒体播放控制消息为所述机顶盒的中间件通过扩展页面的脚本获得的;

控制模块52,用于基于所述媒体播放控制消息对所述页面上的媒体进行播放控制。

在一种可能的设计中,所述媒体播放控制消息中包括第二播放状态的控制指令;

所述控制模块52,具体用于基于所述第二播放状态的控制指令将所述页面上的媒体由当前的第一播放状态切换到所述第二播放状态。

本实施例提供的装置能够用于执行图1实施例的方法,其执行方式和有益效果类似,在这里不再赘述。

图6是本发明实施例提供的一种获取模块51的结构示意图,如图6所示,在图5实施例的基础上,获取模块51包括:

获取子模块511,用于从预设的消息队列中获取目标接口发送的媒体播放控制消息。

在一种可能的设计中,所述获取子模块511,具体用于:

判断所述消息队列中是否存在符合预设无效条件的无效控制消息;

若存在,则在清除所述无效控制消息后,再从所述消息队列中获取媒体播放控制消息。

本实施例提供的装置能够用于执行图3实施例的方法,其执行方式和有益效果类似,在这里不再赘述。

本发明实施例还提供一种机顶盒,包括:

处理器;

存储器,用于存储所述处理器的可执行指令;

当所述处理器执行所述可执行指令时,可以用于实现上述实施例的技术方案。

本发明实施例还提供一种计算机可读存储介质,包括指令,当所述指令在所述计算机上运行时,所述计算机可以用于实现上述实施例的技术方案。

最后需要说明的是,本领域普通技术人员可以理解上述实施例方法中的全部或者部分流程,是可以通过计算机程序来指令相关的硬件完成,所述的程序可存储于一计算机可读存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可以为磁盘、光盘、只读存储记忆体(rom)或随机存储记忆体(ram)等。

本发明实施例中的各个功能单元可以集成在一个处理模块中,也可以是各个单元单独的物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现,并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。上述提到的存储介质可以是只读存储器、磁盘或光盘等。

以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1