CN109743632B - 一种实现安卓多生态系统下媒体播放的多引擎接入的方法 - Google Patents
一种实现安卓多生态系统下媒体播放的多引擎接入的方法 Download PDFInfo
- Publication number
- CN109743632B CN109743632B CN201811548975.2A CN201811548975A CN109743632B CN 109743632 B CN109743632 B CN 109743632B CN 201811548975 A CN201811548975 A CN 201811548975A CN 109743632 B CN109743632 B CN 109743632B
- Authority
- CN
- China
- Prior art keywords
- playing
- protocol
- engine
- layer
- broadcast
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 230000007547 defect Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Abstract
本发明公开了一种实现安卓多生态系统下媒体播放的多引擎接入的方法,所述方法包括:订立统一播放引擎的统一播控协议,任何第三方播放引擎基于该统一播控协议方可接入SDK应用程序接口;设立代理播放引擎的控制代理协议,该代理播放引擎对所述统一播放引擎的协议实例进行了封装;订立控制层协议,控制层基于具体的业务逻辑调用代理播放引擎的协议实例,实现统一播控。本发明通过订立抽象的接口协议,规范了各大播放引擎需要实现的基础方法,使得各大视频业务服务商快速接入其它服务商的视频播放内容及相关业务上,达到统一播控的目的。
Description
技术领域
本发明属于多媒体播控业务领域,具体涉及一种实现安卓多生态系统下媒体播放的多引擎接入的方法。
背景技术
目前行业内,特别是国内,Android生态杂乱,系统碎片化,多厂商多方案,涉及到framework层(架构层)的系统的媒体播放器(media player)已经无法满足播放的需求,各大互联网技术公司纷纷自研播放引擎,在此环境下,媒体类APP应用层的多引擎接入就迫在眉睫。
因此,如何实现对不同播放引擎接统一接入和播控便成为了目前亟待解决的技术问题。
发明内容
基于现有技术的上述缺陷,本发明的目的是提供一种实现安卓多生态系统下媒体播放的多引擎接入的方法,以解决现有的不同的播放引擎无法进行统一接入和播控的问题。
本发明采用的技术方案如下:
一种实现安卓多生态系统下媒体播放的多引擎接入的方法,包括:
订立统一播放引擎的统一播控协议,任何第三方播放引擎基于该统一播控协议方可接入SDK应用程序接口;
设立代理播放引擎的控制代理协议,该代理播放引擎对所述统一播放引擎的协议实例进行了封装;
订立控制层协议,控制层基于具体的业务逻辑调用代理播放引擎的协议实例,实现统一播控。
进一步地,应用层提供代理播放引擎的协议实例及统一播放引擎的协议实例,并把代理播放引擎的协议实例传递给控制层,控制层根据具体的业务逻辑调用代理播放引擎的协议实例,实现统一播控。
进一步地,所述控制层根据具体的业务逻辑,持有代理播放引擎实现的句柄或者引用。
进一步地,应用层包括抽象协议层和协议实现层,抽象协议层作为底层协议被上层的协议实现层调用。
进一步地,所述控制代理协议设定的内容包括:屏蔽了统一播放引擎及第三方播放引擎的差异性。
进一步地,所述抽象协议层和协议实现层在架构上为分离。
进一步地,对第三方播放引擎自己的播放URL封装,将代理播放引擎中的URL作为泛型对象,对其它第三方播放引擎通过泛型做到约束。
进一步地,所述统一播放引擎提供的基础播放业务包括:开始播放、暂停、停止播放、销毁、拖动、获取节目总时长、获取节目播放进度、获取节目的帧的宽度或高度。
进一步地,所述代理播放引擎提供的基础播放业务包括:播放暂停、暂停之后的重播放、节目拉伸、获取当前节目位置、获取当前节目总长度、拖动到指定时间播放、释放当前正在播放的资源、重置播放任务已准备新的节目去播放、获取当前正在播放的节目的下载速度、获取当前状态机的播放状态。
与现有技术相比,本发明所公开的一种实现安卓多生态系统下媒体播放的多引擎接入的方法,通过订立的抽象接口协议,规范了各大播放引擎需要实现的基础方法,使得各大视频业务服务商快速接入其它服务商的视频播放内容及相关业务上,达到统一播控的目的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例所述的一种实现安卓多生态系统下媒体播放的多引擎接入的方法的流程示意图。
具体实施方式
为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。
本发明通过一层抽象接口协议,来规范各种播放引擎需要实现的基础方法,并通过统一的控制层协议来控制该标准协议的实现,从而达到多引擎接入的目的。
参照图1所示,本发明实施例提供了一种实现安卓多生态系统下媒体播放的多引擎接入的方法,该方法包括如下步骤:
步骤S1、订立统一播放引擎的统一播控协议,本实施例中,该统一播控协议命名为IMediaPlayer协议。该协议的基本内容规定为:任何第三方播放引擎要接入,需要本协议的实现才可以接入本应用软件的SDK(开发程序包)。其中,IMediaPlayer协议的角色为提供播放器的基础播放能力,包括但不限于:开始播放、暂停、停止播放、销毁、拖动seek(实现快进快退)、获取节目总时长、获取节目播放进度、获取节目的帧的宽度或高度等等。该协议的一个具体基本示例如下:
上述协议订立了统一媒体播放器的基础功能,任何一个播放引起均可以实现该协议,但本领域技术人员应当理解的是,上述协议示例所列举的播放基础功能并不仅限于此,可根据实际情况进行其它功能的扩展。
步骤S2、订立代理播放引擎的控制代理协议,本实施例中,将代理播放引擎命名为Iplayer,它规定的协议命名为Iplayer协议。Iplayer协议的基本内容设定为:屏蔽IMediaPlayer的引擎及不同播放平台的差异性。Iplayer协议使用代理模式,其作为同一播放协议的代理,操作通用的IMediaPlayer引擎接入该协议,各协议的差异性放在统一播放引擎(IMediaPlayer)中,对代理播放引擎(Iplayer)不可见。代理播放引擎的角色实质上是作为IMediaPlayer协议实例的一个控制角色,主要根据控制层的协议对于IMediaPlayer协议实例的封装控制。上层应用和业务逻辑主要通过Iplayer进行控制。由于Iplayer封装了部分通用播放业务,上层的应用层可调用SDK反复使用此业务以减少重复开发工作,提高效率。本实施例中,代理播放器角色的基本功能包括:播放暂停、暂停之后的重播放、节目拉伸方式(比如全屏拉伸、等比缩放等)、获取当前节目位置、获取当前节目总长度、拖动到指定时间播放、释放当前正在播放的资源、重置播放任务已准备新的节目去播放、获取当前正在播放的节目的下载速度、获取当前状态机的播放状态等。Iplayer协议的一个基本示例如下:
上述协议示例示出了Iplayer对IMediaPlayer的代理和控制。Iplayer和IMediaPlayer采用两套协议,角色不同,前者是作为代理,后者是被代理。当然,上述Iplayer协议的示例仅仅是部分列举,不限于上述所公开的方式。
步骤S3、订立控制层协议,本实施例中,控制层协议命名为Icontroller协议。控制层根据所要实现具体的业务类型的不同,持有Iplayer实现的句柄或者引用,句柄是通过一个四字节长的数值来标识应用程序中的不同对象和同类对象中的不同的实例,引用是对象的别名,其实质是功能受限但是安全性更高的指针。Icontroller根据具体的业务逻辑去调用Iplayer协议实例,从而达到播放控制的目的。
本发明实施例中,把抽象的协议划分为一个模块,即抽象协议层,把实现协议的划分为另一个模块,即协议实现层,成为上下两层,方便解耦。协议层和协议实现层从架构上做到分离,抽象的协议层作为底层协议被上层的协议实现层实现调用。具体在本实施例中,控制层作为上层具体的操作层,IPlayer作为下层的调用接口层。
在多引擎接入的时候,应用层负责提供IPlayer协议实例和IMediaPlayer协议实例,并把IPlayer的协议实例传给IController控制层,或者由IController控制层从抽象的IPlayer协议调取,从而实现多引擎接入并实现播放控制的目的。其中,应用层为调用SDK的应用程序这一层。
关于播放URL(统一资源定位符),本发明在实际操作和对接过程中,发现第三方播放引擎都会有自己的播放URL封装,故IPlayer中play(T info)播放的URL是一个泛型对象。对于URL的通用化,本发明设置了URLBuilder(播放串建造器)的角色,它规定每一个引擎播放的对象都是URLBuilder构建(build)出来的对象,该URLBuilder角色的作用是负责屏蔽不同的媒资来源的和不同的引擎的差异性,使得播放引擎和媒资能灵活接入。不同的播放引擎对应不同的对象,通过泛型做到约束,实现统一管理。
通过本发明的方法,能够让各大视频业务服务商快速接入其它服务商的视频播放内容及相关业务。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.一种实现安卓多生态系统下媒体播放的多引擎接入的方法,其特征在于,所述方法包括:
订立统一播放引擎的统一播控协议,任何第三方播放引擎基于该统一播控协议方可接入SDK应用程序接口;
设立代理播放引擎的控制代理协议,该代理播放引擎对所述统一播放引擎的协议实例进行了封装;
订立控制层协议,由应用层提供代理播放引擎的协议实例及统一播放引擎的协议实例,并把代理播放引擎的协议实例传递给控制层,控制层基于具体的业务逻辑调用代理播放引擎的协议实例,实现统一播控。
2.根据权利要求1所述的多引擎接入的方法,其特征在于,所述控制层根据具体的业务逻辑,持有代理播放引擎实现的句柄或者引用。
3.根据权利要求1所述的多引擎接入的方法,其特征在于,所述应用层包括抽象协议层和协议实现层,所述抽象协议层作为底层协议被上层的所述协议实现层调用。
4.根据权利要求1所述的多引擎接入的方法,其特征在于,所述控制代理协议屏蔽了统一播放引擎及第三方播放引擎的差异性。
5.根据权利要求3所述的多引擎接入的方法,其特征在于,所述抽象协议层和协议实现层在架构上为分离。
6.根据权利要求4所述的多引擎接入的方法,其特征在于,对所述第三方播放引擎自己的播放URL封装,将代理播放引擎中的URL作为泛型对象,其它第三方播放引擎通过所述泛型做到约束。
7.根据权利要求1所述的多引擎接入的方法,其特征在于,所述统一播放引擎提供的基础播放业务包括:开始播放、暂停、停止播放、销毁、拖动、获取节目总时长、获取节目播放进度、获取节目的帧的宽度或高度。
8.根据权利要求1或7所述的多引擎接入的方法,其特征在于,所述代理播放引擎提供的基础播放业务包括:播放暂停、暂停之后的重播放、节目拉伸、获取当前节目位置、获取当前节目总长度、拖动到指定时间播放、释放当前正在播放的资源、重置播放任务已准备新的节目去播放、获取当前正在播放的节目的下载速度、获取当前状态机的播放状态。
9.根据权利要求1所述的多引擎接入的方法,其特征在于,所述应用层为调用SDK应用程序的层。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811548975.2A CN109743632B (zh) | 2018-12-18 | 2018-12-18 | 一种实现安卓多生态系统下媒体播放的多引擎接入的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811548975.2A CN109743632B (zh) | 2018-12-18 | 2018-12-18 | 一种实现安卓多生态系统下媒体播放的多引擎接入的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109743632A CN109743632A (zh) | 2019-05-10 |
CN109743632B true CN109743632B (zh) | 2021-06-04 |
Family
ID=66360510
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811548975.2A Active CN109743632B (zh) | 2018-12-18 | 2018-12-18 | 一种实现安卓多生态系统下媒体播放的多引擎接入的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109743632B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115086768B (zh) * | 2022-06-16 | 2023-07-25 | 四川长虹电器股份有限公司 | 多sdk播放器的控制方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101883110A (zh) * | 2010-07-02 | 2010-11-10 | 深圳市路通网络技术有限公司 | 一种在第三方系统中实现视频播控的方法及装置 |
CN104113790A (zh) * | 2013-04-16 | 2014-10-22 | 优视科技有限公司 | 一种基于安卓操作系统的视频播放方法及装置 |
CN106453939A (zh) * | 2016-10-28 | 2017-02-22 | 努比亚技术有限公司 | 一种流媒体接入方法及装置 |
CN106658149A (zh) * | 2015-10-28 | 2017-05-10 | 中兴通讯股份有限公司 | 媒体播放方法及装置 |
CN108521608A (zh) * | 2018-03-13 | 2018-09-11 | Oppo广东移动通信有限公司 | 视频文件的处理方法、装置、终端及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8644674B2 (en) * | 2012-06-01 | 2014-02-04 | Limelight Networks, Inc. | Control layer indexed playback |
US20170169834A1 (en) * | 2015-12-15 | 2017-06-15 | Le Holdings (Beijing) Co., Ltd | Android-based audio content processing method and device |
-
2018
- 2018-12-18 CN CN201811548975.2A patent/CN109743632B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101883110A (zh) * | 2010-07-02 | 2010-11-10 | 深圳市路通网络技术有限公司 | 一种在第三方系统中实现视频播控的方法及装置 |
CN104113790A (zh) * | 2013-04-16 | 2014-10-22 | 优视科技有限公司 | 一种基于安卓操作系统的视频播放方法及装置 |
CN106658149A (zh) * | 2015-10-28 | 2017-05-10 | 中兴通讯股份有限公司 | 媒体播放方法及装置 |
CN106453939A (zh) * | 2016-10-28 | 2017-02-22 | 努比亚技术有限公司 | 一种流媒体接入方法及装置 |
CN108521608A (zh) * | 2018-03-13 | 2018-09-11 | Oppo广东移动通信有限公司 | 视频文件的处理方法、装置、终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109743632A (zh) | 2019-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI602415B (zh) | 用於受遞送媒體之彈性快取的方法及裝置 | |
JP4319983B2 (ja) | 有効データオブジェクトの伝送方法 | |
US20160007078A1 (en) | Method and system for providing user-generated content via a gateway | |
JP2009515456A (ja) | リッチメディアアプリケーションにおけるリモート対話のためのフィードバック及びフォワード送信を与えるシステム及び方法 | |
CN104618437B (zh) | 一种与android终端设备系统设置接口的适配方法 | |
TWI699988B (zh) | 資訊的處理方法、裝置、設備及系統 | |
CN103531218B (zh) | 一种在线多媒体文件编辑方法及系统 | |
WO2020048386A1 (zh) | 交互信息传输方法及装置 | |
WO2015176648A1 (zh) | 将智能终端上的数据传输至电视终端的方法、装置 | |
US20070291683A1 (en) | Dynamic profile management based on transport detection | |
WO2010072159A1 (zh) | 一种获取界面数据方法、系统及数字电视接收终端 | |
CN109743632B (zh) | 一种实现安卓多生态系统下媒体播放的多引擎接入的方法 | |
CN106155625A (zh) | 一种音频适配方法和系统 | |
CN107276990B (zh) | 一种流媒体直播方法及装置 | |
EP1551175A1 (en) | Information processor | |
US9232256B2 (en) | System and method for generating flash-based media stream | |
CN104954850A (zh) | 非线性编辑软件的调度方法和装置 | |
CN103596135A (zh) | 实现消息推送的方法和通用消息平台 | |
CN107172504B (zh) | 一种面向流式音视频数据的分布式处理方法及其装置 | |
CN103269450A (zh) | 一种面向Android智能电视的多媒体系统 | |
CA2896307C (en) | Method and apparatus for forwarding multimedia message | |
CN102196010A (zh) | 一种终端侧应用开放接口的实现系统及方法 | |
CN103384348B (zh) | 一种ginga数字电视中间件在嵌入式数字电视平台上的实现方法 | |
CN112165529A (zh) | 一种低成本跨网络数据交换的方法、装置、设备和介质 | |
CN111447463A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |