CN105791994B - 一种基于Android系统的webkit浏览器视频播放方法及装置 - Google Patents
一种基于Android系统的webkit浏览器视频播放方法及装置 Download PDFInfo
- Publication number
- CN105791994B CN105791994B CN201410822575.1A CN201410822575A CN105791994B CN 105791994 B CN105791994 B CN 105791994B CN 201410822575 A CN201410822575 A CN 201410822575A CN 105791994 B CN105791994 B CN 105791994B
- Authority
- CN
- China
- Prior art keywords
- event
- message event
- player
- webpage
- 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
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种基于Android系统的webkit浏览器视频播放方法及装置,本发明方法通过内核侦测到网页接收的播放事件,将此播放事件反馈给所述框架层,所述框架层基于所述播放事件调用相应的播放函数,通过预置的接口将所述播放事件及相应的播放函数发送至应用层,所述应用层基于所述播放播放事件及播放函数创建播放器,并进行视频播放。本发明装置与方法对应。本发明由于播放器是在应用层的浏览器中实现的,在需要使用自定义播放控制和播放窗口时,通过升级应用层浏览器就能实现界面和功能的更新,修改和升级界面更加灵活。
Description
技术领域
本发明属于网络视听技术领域,尤其涉及一种基于Android系统的webkit浏览器视频播放方法及装置。
背景技术
现有安卓平台浏览器的架构,如图1所示,Android平台的WebKit上层由Java语言封装,并且作为API提供给Android应用开发者,而底层使用WebKit内核(WebCore)进行网页排版和解析。其中WebView API是处于安卓的框架层(framework层),安卓的框架层有一个专门webkit模块,WebKit模块分为两个部分:Java层和C层(webkit库),Java层和C层通过JNI相互调用。WebKit模块负责给浏览器应用提供应用程序的API和实现与C层webkit模块进行通信并做出合适的逻辑处理。
使用安卓webkit内核的浏览器在处理网页中视频播放的流程,简单来说就是浏览器的内核解析到网页中有视频播放的消息之后就会通知到框架层。框架层通过创建一个媒体播放器来进行播放。
由于框架层中创建的媒体播放器的各种界面用户控制逻辑都是在框架层实现的。当厂商想修改或者自定义浏览器中视频播放的控制逻辑或者界面的时候,通常采用直接修改框架层的方法。这种方法有个缺陷就是升级和更新会很麻烦。因为升级或者更新浏览器是不会更新到框架层的内容。想要更新,就必须得升级框架层的内容。框架层是提供应用程序接口的主体,升级框架层的内容风险很高,很容易导致整个系统出错。
发明内容
本发明的目的在于提供一种基于Android系统的webkit浏览器视频播放方法及装置,旨在解决基于webkit浏览器在自定义播放控制播放视频时需要修改浏览器框架层导致的修改不灵活、升级界面繁琐的问题。
本发明是这样实现的,一种基于Android系统的webkit浏览器视频播放方法,所述Android系统包括内核、框架层及应用层,所述方法包括以下步骤:
S1、内核侦测到网页接收的播放事件,将此播放事件反馈给所述框架层;
S2、所述框架层基于所述播放事件调用相应的播放函数,通过预置的接口将所述播放事件及相应的播放函数发送至应用层;
S3、所述应用层基于所述播放播放事件及播放函数创建播放器,并进行视频播放。
优选地,在执行所述步骤S3之后还包括:
S4、所述框架层侦测播放器是否接收到消息事件;
S5、当侦测到消息事件后,所述框架层将消息事件经所述接口反馈给所述内核;
S6、所述内核将所述消息事件发送至对应的网页,以供所述网页根据所述消息事件进行播放控制,其中所述消息事件包括快进、停止、暂停、全屏播放事件、退出全屏播放时间。
优选地,所述网页根据消息事件进行播放控制包括:
当所述网页收到退出全屏播放的消息事件时,暂停播放并隐藏播放器;
当所述网页收到继续播放的消息事件时,从播放器暂停节点处继续播放。
优选地,所述网页根据消息事件进行播放控制还包括:当收到视频播放完成的消息事件时,结束播放器的播放操作。
优选地,所述步骤S3具体为:通过应用层创建播放器;根据所述播放事件控制播放器进行全屏播放。
本发明进一步公开了一种基于Android系统的webkit浏览器视频播放装置,所述装置包括:
播放事件侦测模块,用于内核侦测到网页接收的播放事件,将此播放事件反馈给所述框架层;
接口调用模块,用于所述框架层基于所述播放事件调用相应的播放函数,通过预置的接口将所述播放事件及相应的播放函数发送至应用层当侦测到网页接收到播放事;
播放模块,用于所述应用层基于所述播放播放事件及播放函数创建播放器,并进行视频播放。
优选地,所述装置还包括:
消息事件侦测模块,用于所述框架层侦测播放器是否接收到消息事件;
消息事件反馈模块,用于当侦测到消息事件后,所述框架层将消息事件经所述接口反馈给所述内核;
消息事件发送模块,用于所述内核将所述消息事件发送至对应的网页,以供所述网页根据所述消息事件进行播放控制,其中所述消息事件包括快进、停止、暂停、全屏播放事件、退出全屏播放时间。
优选地,所述网页根据消息事件进行播放控制包括:
当所述网页收到退出全屏播放的消息事件时,暂停播放并隐藏播放器;
当所述网页收到继续播放的消息事件时,从播放器暂停节点处继续播放。
优选地,所述网页根据消息事件进行播放控制还包括:当收到视频播放完成的消息事件时,结束播放器的播放操作。
优选地,所述播放模块,具体用于通过应用层创建播放器;根据所述播放事件控制播放器进行全屏播放。
本发明克服现有技术的不足,提供一种基于Android系统的webkit浏览器视频播放方法及装置,通过在浏览器框架层创建一个接口,在浏览器应用层创建一个播放器,在浏览器内核解析到网页里的播放事件时,框架层浏览器通过与应用层浏览器之间的接口将播放事件地址通知到应用层浏览器(浏览器APP端),再由应用层浏览器的播放器并对事件进行播放,播放器在接受到消息事件后经所述接口通知浏览器内核进行相应的处理。在本发明中,由于播放器是在应用层的浏览器中实现的,在需要使用自定义播放控制和播放窗口时,通过升级应用层浏览器就能实现界面和功能的更新,修改和升级界面更加灵活。
附图说明
图1是现有安卓平台浏览器的架构示意图;
图2是本发明基于Android系统的webkit浏览器视频播放方法第一实施例的结构示意图;
图3是本发明基于Android系统的webkit浏览器视频播放方法第二实施例的结构示意图;
图4是本发明基于Android系统的webkit浏览器视频播放第一实施例的结构示意图;
图5是本发明基于Android系统的webkit浏览器视频播放第二实施例的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在下述实施例中以webkit浏览器为例,本发明提供了浏览器视频播放方法,如图2所示,所述方法包括以下步骤:
步骤S1、内核侦测到网页接收的播放事件,将此播放事件反馈给所述框架层。
如图1所示,Android平台的WebKit上层由Java语言封装,并且作为API提供给Android应用开发者,而底层使用WebKit的内核(WebCore)进行网页排版和解析。其中WebView API是处于安卓的框架层(framework层),安卓的框架层有一个专门webkit模块,WebKit模块分为两个部分:Java层和C层(webkit库),Java层和C层通过JNI相互调用。WebKit模块负责给浏览器应用提供应用程序的API和实现与C层webkit模块进行通信并做出合适的逻辑处理。
在步骤S1中,浏览器的内核侦测网页中是否有播放事件,解析到网页中有视频播放的消息之后,就会通知到框架层。播放事件包括事件和视频的地址源。
步骤S2、所述框架层基于所述播放事件调用相应的播放函数,通过预置的接口将所述播放事件及相应的播放函数发送至应用层。
在步骤S2中,当浏览器内核解析到播放事件的时候,框架层不再承担视频播放的绘制工作,而是在框架层创建一个自定义的接口(callbackproxy接口),框架层通过启动这个接口将播放事件以及视频地址反馈至应用层而框架层的媒体播放器则被架空,即框架层的媒体播放器不再承担视频播放,而由应用层中创建的播放器承担视频播放任务。
步骤S3、所述应用层基于所述播放播放事件及播放函数创建播放器,并进行视频播放。
在步骤S3中,应用层预先创建播放器,即videoview控件。在本发明中,应用层创建播放器包括播放窗体、播放控制模块和播放控制条模块。其中,播放控制模块负责:
(1)设置数据源,即设置视频资源的来源;
(2)解析视频格式;
(3)视频解码前的前期准备工作,例如去噪处理等,此处对此不作限制;
(4)提供视频播放控制的控制条,该控制条包括暂停,播放,停止,快进,快退等控制指令输入按钮。
播放控制调界面模块负责:
(1)播放界面控制条的呈现;
(2)调用播放控制模块的控制条实现对视频播放的控制。
播放窗体负责承载视频中的帧,把视频呈现出来。
在本发明中,在应用层获取到播放事件的事件和视频的地址源,通过所创建的播放器视频进行播放控制,包括播放、停止、快进快退、3D设置、拖动进度等。在本发明实施例中,为了突出电视屏的优势以及使用户具有更好的体验,播放器对播放事件进行播放时自动进入全屏播放状态。
在本发明中,由于播放器是在应用层中实现的,安卓提供了app端播放视频常用的控件,因此,只需要自定义VideoView对象的界面,就可以得到自定义控制条,不需要在框架层修改浏览器中播放器的外观,后续更新播放器外观或者功能的话,只需要升级应用层即可,界面修改和升级更加灵活。
在进一步的实施过程中,为了提高用户体验,本发明提供了浏览器视频播放方法,如图3所示,所述方法还包括:
步骤S4、所述框架层侦测播放器是否接收到消息事件。
在步骤S4中,浏览器的内核实时侦测播放器是否有消息事件。所述消息事件包括退出全屏、播放暂停或者结束播放等,此处对此不作限制。
步骤S5、当侦测到消息事件后,所述框架层将消息事件经所述接口反馈给所述内核。
步骤S6、所述内核将所述消息事件发送至对应的网页,以供所述网页根据所述消息事件进行播放控制,其中所述消息事件包括快进、停止、暂停、全屏播放事件、退出全屏播放时间。
在步骤S6中,所述内核根据消息事件进行播放控制包括:当浏内核收到退出全屏播放状态的消息事件时,将暂停播放并隐藏播放器;当内核收到继续播放的消息事件时,从播放器暂停节点处继续播放;以及当内核收到视频播放完成的消息事件时,结束播放器的播放操作。当播放器所在的应用层接受到这些消息事件时,经所述接口(callbackproxy接口)、框架层,并最终把事件通知内核进行相应的控制操作。
本发明进一步提供了一种浏览器视频播放装置,如图4所示,所述装置包括:
播放事件侦测模块1,用于内核侦测到网页接收的播放事件,将此播放事件反馈给所述框架层;
接口调用模块2,用于所述框架层基于所述播放事件调用相应的播放函数,通过预置的接口将所述播放事件及相应的播放函数发送至应用层当侦测到网页接收到播放事;
播放模块3,用于所述应用层基于所述播放播放事件及播放函数创建播放器,并进行视频播放。
更具体的,如图5所示,所述装置还包括:
消息事件侦测模块4,用于所述框架层侦测播放器是否接收到消息事件;
消息事件反馈模块5,用于当侦测到消息事件后,所述框架层将消息事件经所述接口反馈给所述内核;
消息事件发送模块6,用于所述内核将所述消息事件发送至对应的网页,以供所述网页根据所述消息事件进行播放控制,其中所述消息事件包括快进、停止、暂停、全屏播放事件、退出全屏播放时间。
在消息事件处理模块6中,所述内核根据消息事件进行播放控制包括:当内核收到退出全屏播放状态的消息事件时,将暂停播放并隐藏播放器;当内核收到继续播放的消息事件时,从播放器暂停节点处继续播放;以及当内核收到视频播放完成的消息事件时,结束播放器的播放操作。
本发明实施例所述的装置与上述实施例中所述方法实施例相对应,所述装置使用的技术手段与上述方法实施例所使用的技术手段一致,因此上述方法实施例中记载的内容同样用于解释本发明装置实施例,在此不再赘述。
相比于现有技术的缺点和不足,本发明具有以下有益效果:本发明通过升级应用层浏览器就能实现界面和功能的更新,修改和升级界面更加灵活。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于Android系统的webkit浏览器视频播放方法,所述Android系统包括内核、框架层及应用层,其特征在于,所述方法包括以下步骤:
S1、内核侦测到网页接收的播放事件,将此播放事件反馈给所述框架层;
S2、所述框架层基于所述播放事件调用相应的播放函数,通过预置的接口将所述播放事件及相应的播放函数从所述框架层发送至应用层;
S3、所述应用层基于所述播放事件及播放函数创建播放器,并进行视频播放。
2.如权利要求1所述的基于Android系统的webkit浏览器视频播放方法,其特征在于,在执行所述步骤S3之后还包括:
S4、所述框架层侦测播放器是否接收到消息事件;
S5、当侦测到消息事件后,所述框架层将消息事件经所述接口反馈给所述内核;
S6、所述内核将所述消息事件发送至对应的网页,以供所述网页根据所述消息事件进行播放控制,其中所述消息事件包括快进、停止、暂停、全屏播放事件、退出全屏播放时间。
3.如权利要求2所述的基于Android系统的webkit浏览器视频播放方法,其特征在于,所述网页根据消息事件进行播放控制包括:
当所述网页收到退出全屏播放的消息事件时,暂停播放并隐藏播放器;
当所述网页收到继续播放的消息事件时,从播放器暂停节点处继续播放。
4.如权利要求3所述的基于Android系统的webkit浏览器视频播放方法,其特征在于,所述网页根据消息事件进行播放控制还包括:当收到视频播放完成的消息事件时,结束播放器的播放操作。
5.如权利要求1所述的基于Android系统的webkit浏览器视频播放方法,其特征在于,所述步骤S3具体为:通过应用层创建播放器;根据所述播放事件控制播放器进行全屏播放。
6.一种基于Android系统的webkit浏览器视频播放装置,其特征在于,所述装置包括:
播放事件侦测模块,用于内核侦测到网页接收的播放事件,将此播放事件反馈给框架层;
接口调用模块,用于所述框架层基于所述播放事件调用相应的播放函数,通过预置的接口将所述播放事件及相应的播放函数从所述框架层发送至应用层;
播放模块,用于所述应用层基于所述播放播放事件及播放函数创建播放器,并进行视频播放。
7.如权利要求6所述的基于Android系统的webkit浏览器视频播放装置,其特征在于,所述装置还包括:
消息事件侦测模块,用于所述框架层侦测播放器是否接收到消息事件;
消息事件反馈模块,用于当侦测到消息事件后,所述框架层将消息事件经所述接口反馈给所述内核;
消息事件发送模块,用于所述内核将所述消息事件发送至对应的网页,以供所述网页根据所述消息事件进行播放控制,其中所述消息事件包括快进、停止、暂停、全屏播放事件、退出全屏播放时间。
8.如权利要求7所述的基于Android系统的webkit浏览器视频播放装置,其特征在于,所述网页根据消息事件进行播放控制包括:
当所述网页收到退出全屏播放的消息事件时,暂停播放并隐藏播放器;
当所述网页收到继续播放的消息事件时,从播放器暂停节点处继续播放。
9.如权利要求8所述的基于Android系统的webkit浏览器视频播放装置,其特征在于,所述网页根据消息事件进行播放控制还包括:当收到视频播放完成的消息事件时,结束播放器的播放操作。
10.如权利要求6所述的基于Android系统的webkit浏览器视频播放装置,其特征在于,所述播放模块,具体用于通过应用层创建播放器;根据所述播放事件控制播放器进行全屏播放。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410822575.1A CN105791994B (zh) | 2014-12-25 | 2014-12-25 | 一种基于Android系统的webkit浏览器视频播放方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410822575.1A CN105791994B (zh) | 2014-12-25 | 2014-12-25 | 一种基于Android系统的webkit浏览器视频播放方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105791994A CN105791994A (zh) | 2016-07-20 |
CN105791994B true CN105791994B (zh) | 2019-09-06 |
Family
ID=56388541
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410822575.1A Active CN105791994B (zh) | 2014-12-25 | 2014-12-25 | 一种基于Android系统的webkit浏览器视频播放方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105791994B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106454512A (zh) * | 2016-09-06 | 2017-02-22 | 北京小度互娱科技有限公司 | 播放器事件统计方法、装置、播放器及终端设备 |
CN106341600A (zh) * | 2016-09-23 | 2017-01-18 | 乐视控股(北京)有限公司 | 一种全景视频播放处理方法及装置 |
CN106598398B (zh) * | 2016-12-21 | 2020-04-28 | 北京奇虎科技有限公司 | 一种视频全屏的实现方法及电子设备 |
CN106878810A (zh) * | 2017-03-13 | 2017-06-20 | 福建中金在线信息科技有限公司 | 一种视频播放方法及装置 |
CN108632659A (zh) * | 2018-04-23 | 2018-10-09 | 聚好看科技股份有限公司 | 播放控制方法及装置 |
CN109634549A (zh) * | 2018-10-23 | 2019-04-16 | 中国平安人寿保险股份有限公司 | 音频播放方法、音频播放器、计算机装置及可读存储介质 |
CN110493659A (zh) * | 2019-08-22 | 2019-11-22 | 深圳市网心科技有限公司 | 一种视频播放器交互功能的实现方法、装置及设备 |
CN110913277A (zh) * | 2019-11-29 | 2020-03-24 | 百度在线网络技术(北京)有限公司 | 一种视频播放方法、装置、电子设备及存储介质 |
CN112422676A (zh) * | 2020-11-17 | 2021-02-26 | 京东数字科技控股股份有限公司 | 一种视频播放方法、装置、设备和计算机可读存储介质 |
CN115396721B (zh) * | 2022-08-26 | 2024-01-23 | 四川长虹电器股份有限公司 | 基于hbbtv宽带连接的视频播放方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102314467A (zh) * | 2010-12-29 | 2012-01-11 | 苏州阔地网络科技有限公司 | 一种实现网页同步浏览的方法 |
CN104125490A (zh) * | 2013-04-28 | 2014-10-29 | 腾讯科技(深圳)有限公司 | 一种在线视频播放方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102665137B (zh) * | 2012-04-01 | 2016-12-14 | 深圳Tcl新技术有限公司 | 控制媒体播放器的方法及终端 |
CN102647629A (zh) * | 2012-04-27 | 2012-08-22 | 北京人民广播电台 | 内容播放方法和装置 |
CN103514924B (zh) * | 2012-06-15 | 2016-08-10 | 中国移动通信集团广东有限公司 | 移动终端微件Widget内播放视频的方法、装置及播放器 |
CN103777938A (zh) * | 2012-10-25 | 2014-05-07 | 百度在线网络技术(北京)有限公司 | 支持多浏览器的播放方法及装置 |
CN103414866B (zh) * | 2013-07-25 | 2017-06-16 | 深圳Tcl新技术有限公司 | 播放在线音视频的方法、嵌入式多媒体设备及电视 |
CN103914299B (zh) * | 2014-03-24 | 2017-10-24 | 北京金山网络科技有限公司 | 一种Flash硬件加速控制方法及系统 |
-
2014
- 2014-12-25 CN CN201410822575.1A patent/CN105791994B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102314467A (zh) * | 2010-12-29 | 2012-01-11 | 苏州阔地网络科技有限公司 | 一种实现网页同步浏览的方法 |
CN104125490A (zh) * | 2013-04-28 | 2014-10-29 | 腾讯科技(深圳)有限公司 | 一种在线视频播放方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105791994A (zh) | 2016-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105791994B (zh) | 一种基于Android系统的webkit浏览器视频播放方法及装置 | |
US11962934B2 (en) | Display device and control method therefor | |
CN105208442B (zh) | 一种视频播放应用程序的视频播放方法及装置 | |
WO2017113856A1 (zh) | 弹幕显示方法和装置 | |
US8966513B2 (en) | System and method for processing media highlights | |
JP6651226B2 (ja) | 情報プレゼンテーションアイテムを表示するための方法および装置、ならびにマルチメディア再生デバイス | |
CN102789390A (zh) | 一种实现Android系统开机播放网络视频的方法 | |
CN108966031B (zh) | 视频会话中实现播放内容控制的方法及装置、电子设备 | |
US20240154924A1 (en) | Methods, systems, and media for generating a notification in connection with a video content item | |
US20120326993A1 (en) | Method and apparatus for providing context sensitive interactive overlays for video | |
GB201212152D0 (en) | A method and system for automatically generating interstitial material related to video content | |
CN105630507A (zh) | 一种WebView控件界面绘制的方法和装置 | |
CN102484685A (zh) | 图像显示设备及其操作方法 | |
CN108243151A (zh) | 一种自动动画播放方法、装置、客户端以及视频直播系统 | |
CN104506964A (zh) | 广告素材的生成方法及装置、电子设备 | |
CN102789385B (zh) | 视频文件播放器和视频文件播放的处理方法 | |
DE202011110535U1 (de) | Bildanzeigevorrichtung zur Bereitstellung eines Fernsteuerdienstes | |
CN102520864A (zh) | 一种播放连续图片的方法和装置 | |
CN109542577B (zh) | 广告更新方法、装置及计算机可读存储介质 | |
CN104915977A (zh) | 本地应用程序的动画文件生成方法及装置 | |
CN105763900B (zh) | 一种设置直播节目权限的方法及装置 | |
CN107291411B (zh) | 无线传屏中信息共享的方法、装置及存储介质 | |
CN104581413A (zh) | Tv及其操作方法 | |
US9380189B2 (en) | Method of providing information configuration function in video play device and video play device | |
CN104376009B (zh) | 微博页面的丰富化方法、系统和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |