多sdk播放器的控制方法及控制系统
技术领域
1.本发明涉及软件技术领域,特别是一种多sdk播放器的控制方法及控制系统。
背景技术:2.软件开发工具包(缩写:sdk、外语全称:software development kit)一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。
3.在android电视上,经常涉及到与各家视频内容方的合作,在播放业务中,会同时使用到多家视频内容方的资源并进行播放,此时,就需要集成多家视频内容方的sdk,达到可以播放多家视频内容的目的。由于集成了多家不同的sdk,每家sdk对接都需要单独对接,且sdk对接方式不一致,如何统一集成并进行播放器管理是业内一个难题。
4.目前存在的主要问题包括:第一,部分sdk提供播放视图+播放器功能,部分sdk只提供播放器功能,导致在集成时对播放视图的处理流程不一致,不易管理;第二,在多家不同sdk播放之间来回去切换播放状态时,播放器时序管理不当容易引起无法播放等严重问题。
技术实现要素:5.首先,要解决如何实现在各家提供sdk状态不一致的情况下,完成对播放视图操作的统一管理,并避免与sdk内部的冲突;其次,需要解决如何保证在多家sdk之前来回切换播放状态时,播放器时序正常,不会出现播放冲突等问题,本发明的目的是提供一种多sdk播放器的控制方法及控制系统,本发明实现了对各家sdk播放视图的统一管理,解决各家sdk来回切换时可能出现播放器时序问题。
6.为实现上述目的,本发明采用的技术方案是:一种多sdk播放器的控制方法,包括:
7.创建播放器代理视图,业务层对播放器代理视图进行统一的操作管理,忽略sdk播放器内部的播放视图状态;
8.在所述播放器代理视图中实现统一的播放入口函数,通过所述播放入口函数,进行上一个sdk播放器的停止动作,并开始下一个sdk播放器的起播。
9.作为本发明的进一步改进,对于提供播放视图的sdk播放器,将sdk播放器提供的播放视图添加到播放器代理视图中管理;对于不提供播放视图的sdk播放器,在播放器代理视图中创建一个播放视图,并添加至播放器代理视图中。
10.作为本发明的进一步改进,还包括:
11.在所述播放器代理视图中创建一个单独的播放线程,将所有播放器动作指令全部发送到所述播放线程中执行,保证所有sdk播放器全部执行在该播放线程中,从而实现播放时序的管理。
12.作为本发明的进一步改进,所述播放线程通过handlerthread或单线程池实现。
13.作为本发明的进一步改进,所述播放器代理视图为android系统中的viewgroup及
其子类。
14.本发明还提供一种多sdk播放器的控制系统,用于实现如上所述的多sdk播放器的控制方法,所述的控制系统包括:
15.播放器代理视图,所述播放器代理视图用于业务层对播放器代理视图进行统一的操作管理,忽略sdk播放器内部的播放视图状态;以及用于实现统一的播放入口函数,通过所述播放入口函数,进行上一个sdk播放器的停止动作,并开始下一个sdk播放器的起播。
16.本发明的有益效果是:
17.本发明能够保证开发者对于各家sdk的播放视图进行统一管理,降低新接入sdk时,在播放视图对接上所投入的人力;同时,能够保证开发者在新接入sdk后,不会存在播放器时序而导致的播放器失败等问题。。
附图说明
18.图1为本发明实施例2的实现流程图。
具体实施方式
19.下面结合附图对本发明的实施例进行详细说明。
20.实施例1
21.一种多sdk播放器的控制方法,包括以下步骤:
22.步骤a、在接入sdk时,由于部分sdk提供播放视图+播放器功能,部分sdk仅提供播放器功能,为保证业务中对播放视图有统一处理的需求,需要对播放视图进行统一管理。本实施例中,通过创建播放器代理视图,业务层对播放器代理视图进行统一的操作管理,忽略sdk内部的播放视图状态。对于提供播放视图的sdk,将sdk提供的播放视图添加到播放器代理视图中管理;对于不提供播放视图的sdk,在代理视图中创建一个播放视图,并添加至播放器代理视图中。通过对代理视图的统一操作管理,从而达到对播放视图的统一管理。
23.步骤b、当业务需要在多家sdk播放间来回进行切换时,由于各家sdk的播放器状态都是独立管理,容易出现播放器状态冲突问题,进而导致播放失败等问题。本实施例中,基于步骤a中创建的播放器代理视图,在播放器代理视图中实现统一的播放入口函数,通过该播放入口函数,进行上一个sdk播放器的停止动作,并开始下一个sdk播放器的起播。同时,在播放器代理视图中创建一个单独的播放线程,将所有播放器动作指令全部发送到该播放线程中执行,保证所有sdk全部执行在该播放线程中,从而实现播放时序的管理。
24.实施例2
25.如图1所示,一种多sdk播放器的控制方法,包括:
26.1、播放器代理视图创建及管理,具体包括如下步骤:
27.步骤a、播放器代理视图为android系统中的viewgroup及其子类,实施中以framelayout为例,创建framelayout的自定义子类作为播放器代理视图类;
28.步骤b、在进行sdk播放前,通过sdk提供的接口获取其播放视图,若未能获取到播放视图,则为其创建一个播放视图;将得到的播放视图通过addview方法添加至播放器代理视图中,进而实现播放画面的显示。
29.步骤c、在进行sdk播放切换时,若播放器代理视图中存在上一个sdk的播放视图,
先将上一sdk的播放视图通过removeview方法从播放器代理视图中移除,再进行步骤b中的播放视图添加流程。
30.2、切换sdk播放时序管理,具体包括如下步骤:
31.步骤a、在播放器代理视图framelayout初始化时,同时创建并开启播放线程playerthread,播放线程为单线程且全局唯一,此处播放线程以handlerthread实现,但不仅限于此。
32.步骤b、在播放器代理视图中,实现统一的播放起播入口函数,所有播放指令均通过此入口函数发送,入口函数会将播放指令发送至播放线程中,实现播放相关操作全部运行在播放线程,保证播放器时序正常。
33.实施例3
34.一种多sdk播放器的控制系统,用于实现实施例1或实施例2的多sdk播放器的控制方法,所述的控制系统包括:
35.播放器代理视图,所述播放器代理视图用于业务层对播放器代理视图进行统一的操作管理,忽略sdk播放器内部的播放视图状态;以及用于实现统一的播放入口函数,通过所述播放入口函数,进行上一个sdk播放器的停止动作,并开始下一个sdk播放器的起播。
36.以上所述实施例仅表达了本发明的具体实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。