CN110944231A - 视频播放器的监听方法及装置 - Google Patents
视频播放器的监听方法及装置 Download PDFInfo
- Publication number
- CN110944231A CN110944231A CN201811105198.4A CN201811105198A CN110944231A CN 110944231 A CN110944231 A CN 110944231A CN 201811105198 A CN201811105198 A CN 201811105198A CN 110944231 A CN110944231 A CN 110944231A
- Authority
- CN
- China
- Prior art keywords
- monitoring
- video player
- event
- video
- operation behavior
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/442—Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
- H04N21/44213—Monitoring of end-user related data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/442—Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
- H04N21/4424—Monitoring of the internal components or processes of the client device, e.g. CPU or memory load, processing speed, timer, counter or percentage of the hard disk space used
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
Abstract
本发明公开了一种视频播放器的监听方法及装置,涉及监听技术领域。本发明主要解决了现有技术中在监听对视频播放器的操作行为时,产生逻辑代码调用错误的问题。本发明的方法包括:获取监听函数,所述监听函数包括预设的一一对应的监听事件和业务逻辑代码;当所述监听函数监听到对视频播放器的操作行为时,确定所述操作行为对应的目标监听事件;根据所述目标监听事件调用对应的业务逻辑代码。本发明可广泛应用于监听视频播放器的场景中。
Description
技术领域
本发明涉及监听技术领域,特别是涉及一种视频播放器的监听方法及装置。
背景技术
超级文本标记语言(Hyper Text Markup Language,HTML)是万维网的核心语言,而随着科技的发展,HTML已经经历了多次修改,现在其第五版即HTML5成为了万维网联盟(World Wide Web Consortium,W3C)的推荐标准。
在基于HTML5的视频播放页面进行视频播放时,是利用HTML5的视频播放标签,即video标签来定义视频,不需要再引入其他视频播放器。而在观众对当前的视频进行操作时,如果需要采集该观众的操作行为,那么就需要调用video标签对应的用于监听的事件及其业务逻辑代码来实现。
参考图1所示,W3C官方提供了二十多种对应video标签的用于监听的事件,用于对视频暂停、视频缓冲、视频拖拽等场景进行监听。用户需要先根据这些事件的描述,获得和实际应用场景对应的事件,然后在视频播放页面的视频播放器中添加该事件,使观众在对视频播放器进行操作时能够触发事件并调用该事件对应的逻辑代码,进而达到监听的目的。官方提供的多种事件可以对视频向视频播放器所有操作行为进行比较全面的监听,但是也会带来了一些使用上的问题。
由于官方提供的多种事件中,有很多类似的事件,其作用十分接近且在描述上有比较模糊,在结合业务逻辑代码时,往往很容易发生使用错误。例如官方提供的事件包括play和playing,这两个都是与播放操作相关的事件,而在需要监听观众正式开始观看视频的时间点的时候,用户根据这两个事件的描述是很难确定使用哪个事件来对应当前的实际应用场景的;又如,官方提供的事件seeked和seeking都与拖拽操作有关,但是当用户需要监听观众的拖拽操作时,也很难界定使用哪一个事件进行监听。并且,由于官方提供的是具有嵌套关系的一组事件,在调用一个事件时会连续触发嵌套的其他事件,例如观众在进行拖拽操作时,会触发拖拽(seeking)事件,但同时会触发与拖拽事件嵌套的暂停缓冲(waiting)事件等多个事件,导致事件触发错误,继而调用错误的逻辑代码。
发明内容
有鉴于此,本发明提供的视频播放器的监听方法及装置,主要目的在于解决现有技术中在监听对视频播放器的操作行为时,产生逻辑代码调用错误的问题。
为了解决上述问题,本发明主要提供如下技术方案:
第一方面,本发明提供了一种视频播放器的监听方法,该方法包括:
获取监听函数,所述监听函数包括预设的一一对应的监听事件和业务逻辑代码;
当所述监听函数监听到对视频播放器的操作行为时,确定所述操作行为对应的目标监听事件;
根据所述目标监听事件调用对应的业务逻辑代码。
可选的,确定所述操作行为对应的目标监听事件,包括:
获取所述操作行为触发的至少一个监听事件;
获取所述视频播放器根据所述操作行为产生的播放状态变化信息;
根据所述播放状态变化信息,从被触发的至少一个监听事件中确定所述操作行为对应的目标监听事件。
可选的,在根据所述目标监听事件调用对应的业务逻辑代码之前,所述方法还包括:
判断在第一预设时间内,所述目标监听事件是否被连续触发且没有其他监听事件对应的业务逻辑代码被调用;
若是,则确定发生一个所述目标监听事件。
可选的,所述方法还包括:
在启动视频播放页面时,调用所述监听函数,所述视频播放页面中包含所述视频播放器;和/或,
在调用所述监听函数之后,所述方法还包括:
判断所述视频播放器在所述视频播放页中是否加载完成;
若未加载完成,则在时间间隔达到第二预设时间时,重新调用所述监听函数。
可选的,在获取监听函数之前,所述方法还包括:
获取所述视频播放器对应的多个监听事件;
确定每个所述监听事件对应的业务逻辑代码;
将所述监听事件和对应的业务逻辑代码进行封装,得到所述监听函数。
第二方面,本发明还提供一种视频播放器的监听装置,该装置包括:
获取单元,用于获取监听函数,所述监听函数包括预设的一一对应的监听事件和业务逻辑代码;
确定单元,用于当所述监听函数监听到对所述视频播放器的操作行为时,确定所述操作行为对应的目标监听事件;
调用单元,用于根据所述目标监听事件调用对应的业务逻辑代码。
可选的,所述确定单元包括:
获取模块,用于获取所述操作行为触发的至少一个监听事件;
所述获取模块,还用于获取所述视频播放器根据所述操作行为产生的播放状态变化信息;
确定模块,用于根据所述播放状态变化信息,从被触发的至少一个监听事件中确定所述操作行为对应的目标监听事件。
可选的,所述装置还包括:
判断单元,用于在根据所述目标监听事件调用对应的业务逻辑代码之前,判断在第一预设时间内,所述目标监听事件是否被连续触发且没有其他监听事件对应的业务逻辑代码被调用;
所述确定单元,还用于在判断为是时,确定发生一个所述目标监听事件。
可选的所述调用单元,还用于在启动视频播放页面时,调用所述监听函数,所述视频播放页面中包含所述视频播放器;
所述判断单元,还用于在调用所述监听函数之后,判断所述视频播放器在所述视频播放页中是否加载完成;
所述调用单元,还用于在判断未加载完成,且时间间隔达到第二预设时间时,重新调用所述监听函数。
可选的,所述获取单元,还用于在获取监听函数之前,获取所述视频播放器对应的多个监听事件;
所述确定单元,还用于确定每个所述监听事件对应的业务逻辑代码;
所述装置还包括:
封装单元,用于将所述监听事件和对应的业务逻辑代码进行封装,得到所述监听函数。
第三方面,为了实现上述目的,本发明还提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行第一方面所述的视频播放器的监听方法。
第四方面,为了实现上述目的,本发明还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行第一方面所述的视频播放器的监听方法。
借由上述技术方案,本发明提供的技术方案至少具有下列优点:
本发明提供的视频播放器的监听方法及装置,将各个监听事件都匹配有单独对应的业务逻辑代码,然后使监听函数具有该监听事件和对应的逻辑代码。与现有技术中在对视频播放器进行监听时,需要使用的监听事件人工插入视频播放页面的视频播放器中相比,在获取监听函数并使监听函数在监听到观众对视频播放器的操作行为时,确定被触发的目标监听事件,进而正确调用对应的业务逻辑代码,完成监听任务。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了现有技术中监听事件的描述信息列表;
图2示出了本发明实施例提供的一种视频播放器的监听方法的流程图;
图3示出了本发明实施例提供的另一种视频播放器的监听方法的流程图;
图4示出了本发明实施例提供的一种视频播放器的监听装置的框图;
图5示出了本发明实施例提供的另一种视频播放器的监听装置的框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
参照附图2所示,本发明实施例提供了一种视频播放器的监听方法,该方法主要包括:
101、获取监听函数。
在对视频播放页面中的视频播放器进行监听时,获取视频播放页面中的监听函数,以便利用其对视频播放器进行监听。
监听函数包括预设的一一对应的监听事件和业务逻辑代码。而该监听函数是通过对监听事件和业务逻辑代码进行测试分析而得到的。具体的,预先模拟用户行为对视频播放器进行操作,并且在程序中获取被触发的监听事件的log日志,使其在指定页面或指定控制台输出内容,并查看监听事件调用的逻辑代码,对监听事件和对应的业务逻辑代码进行分析,进而获得监听函数。具体测试分析方式可以是,基于HTML5建立测试网页,然后在该测试网页中使用video标签作为视频播放器。在视频播放器中添加官方提供的具有嵌套关系的监听事件以及对应的组合代码,在测试人员针对视频播放器进行操作行为时,会将所有因操作行为被触发的监听事件按顺序输出。并且会根据不同的操作行为,例如开始加载视频、结束加载视频、开始播放视频、缓冲视频、暂停视频、拖拽视频进度、结束播放视频等,对监听事件进行分析和测试,确定每个对应的操作行为对应的监听事件,以及其中每个监听事件所对应的业务逻辑代码。根据上述测试得到一套监听事件的调用方案,即根据一一对应的监听事件和业务逻辑代码得到监听函数。然后将该监听函数添加到基于HTML5的视频播放页面中。
102、当监听函数监听到对视频播放器的操作行为时,确定操作行为对应的目标监听事件。
在进行监听之前,先要确定视频播放页面中需要监听的视频播放器,然后通过监听函数对该视频播放器进行监听。具体的,可以根据视频播放器的标识确定视频播放页面中需要监听的视频播放器,视频播放器的标识可以是该视频播放器的序号、ID、名称等,本实施例对视频播放器的标识不作具体限定。将需要监听的视频播放器的标识作为参数值,输入到监听函数中;在确定观众启动了视频播放器的视频播放页面时,调用该视频播放页面中的监听函数,使监听函数根据参数值查找到视频播放页面中需要监听的视频播放器,然后将包括的全部监听事件都添加到该视频播放器中,开始对该视频播放器进行监听。
当监听到观众对该视频播放器做出了任何操作行为时,即会按照预先确定的监听事件的调用方案来确定当前的操作行为所对应的目标监听事件;然后触发该目标监听事件。
103、根据目标监听事件调用对应的业务逻辑代码。
在监听函数触发了对应的目标监听事件后,和该目标监听事件对应的业务逻辑代码即会被调用,这样就保证了仅调用目标监听事件对应的逻辑代码,而不会调动其他逻辑代码,不会造成业务逻辑代码调用错误,影响监听任务的执行。
本发明实施例提供的视频播放器的监听方法,将各个监听事件都匹配有单独对应的业务逻辑代码,然后使监听函数具有该监听事件和对应的逻辑代码。与现有技术中在对视频播放器进行监听时,需要使用的监听事件人工插入视频播放页面的视频播放器中相比,在获取监听函数并使监听函数在监听到观众对视频播放器的操作行为时,根据该操作行为准确地确定需要被触发的目标监听事件,进而正确地调用对应的业务逻辑代码,完成监听任务。
基于图2所示的视频播放器的监听方法,本发明另一实施例进一步提供了另一种视频播放器的监听方法,参照附图3所示,该方法主要包括:
201、获取视频播放器对应的多个监听事件。
获取官方提供的用于监听视频播放器的监听事件,获取至少包括用于监听开始加载视频、结束加载视频、播放视频、暂停视频、缓冲视频、拖拽视频进度以及结束播放视频这七种操作行为相关的监听事件。
202、确定每个监听事件对应的业务逻辑代码。
根据获取的监听事件以及其对应的组合代码对测试网页的视频播放器进行监听。根据需要模拟观众的操作行为对视频播放器进行操作,并把该操作行为触发的监听事件按顺序输出。对输出的监听事件进行分析,确定其对应的业务逻辑代码。具体可以根据监听事件的官方描述以及触发监听事件的操作行为,确定监听事件和业务逻辑代码的一一对应关系。例如,在测试播放视频的操作行为时,确定对应的监听事件是“playing”事件而不是“play”事件,在测试缓冲操作行为时,确定用于监听视频缓冲行为的监听事件是“waiting”事件,并且其准确描述为在视频加载完之后才计入监听。获取监听事件、业务逻辑代码、操作行为之间的对应关系,得到一套监听事件的调用方案。
203、将监听事件和对应的业务逻辑代码进行封装,得到监听函数。
现有技术中用户在使用Video Dissector(VD)产品时,如果要监听开始加载视频、结束加载视频、播放视频、缓冲视频、暂停视频、拖拽视频进度条以及结束播放视频这些观众的操作行为,那么就需要调用VD产品中的相关代码。例如,在视频播放器中添加多个需要使用的监听事件时,用户需要部署对应的业务逻辑代码,例如:
video.addEventListener(“waiting”,function({//缓冲时调用VD代码…}));
video.addEventListener(“pause”,function({//暂停时调用VD代码…}));
…
而本实施例为了方便用户对监听事件进行调用,在获取了监听事件和对应的业务逻辑代码后,将所有的监听事件和业务逻辑代码进行封装,并根据封装的数据生成监听函数,使用户在调用监听事件的时候,无需一一部署单个监听事件对应的业务逻辑代码,直接调用封装好的一整套监听函数即可。该监听函数能够监听用户对视频播放器进行的开始加载视频、结束加载视频、播放视频、缓冲视频、暂停视频、拖拽视频进度条以及结束播放视频这七种操作行为中的任意一种或多种。
204、获取监听函数。
将监听函数添加到视频播放页面中,在需要对视频播放页面中的视频播放器进行监听时,首先获取该播放页面中的监听函数,以便后续使用该监听函数中预设的监听事件和业务逻辑代码。
进一步的,该监听函数需要获取视频播放器的标识以确定视频播放页面中需要监听的视频播放器,获取的标识可以是一个或者是多个。当更改视频播放页面中需要监听的视频播放器时,无需重新部署监听事件,重新获取视频播放器的标识即可。
进一步的,在调用该监听函数之前,必须要为其赋值,并设置监听函数的参数值为需要监听的视频播放器的标识。
205、在启动视频播放页面时,调用监听函数。
在观众打开了包含有被监听视频播放器的视频播放页面时,即确定需要开始监听视频播放器,视频播放页面会自动调用监听函数,以便对视频播放器进行及时地监听。
206、判断视频播放器在视频播放页中是否加载完成;若未加载完成,则执行步骤207;若已加载完成,则执行步骤208。
本实施例的方法中具有重试逻辑,即会在第一次调用监听函数后,对需要监听的视频播放器是否已在视频播放页面中加载完成进行判断,若确定未加载完成会进行重试,即重新调动监听函数。
207、在时间间隔达到第二预设时间时,重新调用监听函数。
本实施例预设有重新调用监听函数的间隔时间,在确定视频播放器在视频播放页面中未完成加载后,当时间间隔达到了预设的间隔时间(即第二预设时间)时,视频播放页面即会重新调用将监听函数,直至确定视频播放器已加载完成;以避免调用了监听函数,但视频播放器未加载完成,使监听函数无法将监听事件插入视频播放器中,继而无法进行监听。例如,设置第二预设时间为0.1秒,在判断视频播放器未加载完成时,每隔0.1秒重试调用监听函数,直至判断视频播放器加载完成,才停止重新调用监听函数。
208、当监听函数监听到对视频播放器的操作行为时,获取操作行为触发的至少一个监听事件。
观众对该视频播放器的操作行为会使视频播放器执行多步操作,并触发至少一个监听事件。例如,监听函数监听的行为包括结束加载视频和缓冲视频,监听函数中其对应的事件分别为结束加载视频事件(loadeddata事件)和缓冲视频(waiting事件)。监听函数在视频播放器触发了这两个监听事件时,均会调用其对应的业务逻辑代码,而视频播放器在加载视频时会进行缓冲,即视频播放器的结束加载视频行为会触发loadeddata事件和waiting事件,但是如果在此时根据被触发的waiting事件调用对应的缓冲视频的业务逻辑代码,那么就会造成调用错误。因此在监听函数监听到对视频播放器的操作行为时,首先要获取该操作行为触发的全部监听事件,以便后续做出进一步判断。
209、获取视频播放器根据所述操作行为产生的播放状态变化信息。
视频播放器接收到不同的操作行为,会产生不同的播放状态变化。例如,视频播放器在结束加载视频后,播放状态不会变化;而视频播放器在缓冲视频后,播放状态会变为自动播放状态。因此,监听函数在获取了操作行为触发的监听事件后,会继续监控视频播放器,确定视频播放器在接收到操作行为后产生的播放状态变化信息。
210、根据播放状态变化信息,从被触发的至少一个监听事件中确定操作行为对应的目标监听事件。
在获取了视频播放器的播放状态变化信息后,根据该播放状态信息确定其对应的操作行为、即用户真实的操作行为,在从之前获取的监听事件中确定该操作行为对应的目标监听事件,以此目标监听事件为准,进行后续操作。
211、判断在第一预设时间内,目标监听事件是否被连续触发且没有其他监听事件对应的业务逻辑代码被调用;若是,则执行步骤212。
由于观众在进行一次操作行为时,可能会多次触发同一监听事件。例如,来回拖拽视频的进度条,但并未完成拖拽操作时,就会多次触发seeking事件,导致不停地调用对应的业务逻辑代码,消耗资源。为了避免这种情况发生,本实施例会预先设置一个相同监听事件的触发间隔时间(第一预设时间),在确定了目标监听事件后,会进一步判断在第一预设时间内该目标监听事件是否被连续触发,并且在连续触发的过程中没有其他监听事件的业务逻辑代码被调用;若是,则说明仅仅是由于该监听事件本身的特性导致在一次操作行为内其被多次触发;若不是,则说明多次被触发的监听事件是对应了多个操作行为,是需要在该监听事件每次被触发时都调用对应的业务逻辑代码的。
212、确定发生一个所述目标监听事件。
由于对此触发的目标监听事件仅对应一个操作行为,取其中一个目标监听事件作为代表触发即可,以确保业务逻辑代码的调用正确。
213、根据目标监听事件调用对应的业务逻辑代码。
步骤213的实现方式和上述实施例步骤103的实现方式相同,在此不再赘述。
本发明实施例提供的视频播放器的监听方法,预先根据监听事件的官方描述、以及触发监听事件的操作行为,确定监听事件和业务逻辑代码的一一对应关系,并将监听事件和对应的业务逻辑代码全部封装在监听函数中,以便用户在监听HTML5的video标签时,无需人工调研监听事件的使用方式,直接在视频播放页面调用监听函数即可实现对video标签的准确监听。并且保证监听函数能够准确启动并进行监听,还增加了重试逻辑,在确定视频播放器未加载完成时自动重新调用监听函数。而且,为了能够进一步确保业务逻辑代码的正确调用,会根据视频播放器播放状态的变化,以及目标监听事件是否被连续触发来确定需要触发的目标监听事件。
进一步的,作为对上述实施例方法的实现,本发明再一实施例还提供了一种视频播放器的监听装置。该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。
参照附图4所示,视频播放器的监听装置包括获取单元31、确定单元32和调用单元33。
获取单元31,用于获取监听函数。
在对视频播放页面中的视频播放器进行监听时,通过获取单元31获取视频播放页面中的监听函数,以便利用其对视频播放器进行监听。监听函数包括预设的一一对应的监听事件和业务逻辑代码,且该监听函数是通过对监听事件和业务逻辑代码进行测试分析而得到的。进一步的,在获取了监听函数的同时,获取函数31还会获取需要监听的视频播放器的标识,以便后续监听函数能够根据该标识确定需要监听的视频播放器。视频播放器的标识可以是该视频播放器的序号、ID、名称等,本实施例对视频播放器的标识不作具体限定。
确定单元32,用于当监听函数监听到对视频播放器的操作行为时,确定操作行为对应的目标监听事件。
监听函数确定了需要监听的视频播放器后,将监听事件插入该视频播放器中开始进行监听。在监听到观众对该视频播放器做出了任何操作行为,即会通过确定单元32确定当前操作行为对应的目标监听事件。
调用单元33,用于根据目标监听事件调用对应的业务逻辑代码。
在监听函数触发了对应的目标监听事件后,和该目标监听事件对应的业务逻辑代码即会被调用,以完成监听任务。
可选的,参照图5所示,确定单元32包括获取模块321和确定模块322。
获取模块321,用于获取所述操作行为触发的至少一个监听事件。
观众对该视频播放器的操作行为会使视频播放器执行多步操作,并触发多个监听事件。如果在此时根据被触发的所有监听事件调用对应的业务逻辑代码,那么就会造成调用错误。因此在监听函数监听到对视频播放器的操作行为时,首先要通过获取模块321获取该操作行为触发的全部监听事件,以便后续做出进一步判断。
获取模块321,还用于获取视频播放器根据操作行为产生的播放状态变化信息。
由于视频播放器接收到不同的操作行为,会产生不同的播放状态变化,获取模块321在获取了操作行为触发的监听事件后,会继续获取视频播放器在接收到操作行为后产生的播放状态变化信息,以便对获取的监听事件进行提取。
确定模块322,用于根据播放状态变化信息,从被触发的至少一个监听事件中确定操作行为对应的目标监听事件。
确定模块322会根据该播放状态信息确定其对应的操作行为、即用户真实的操作行为,在从之前获取的监听事件中确定该操作行为对应的目标监听事件,是监听函数以此目标监听事件为准,进行后续操作。
可选的,参照图5所示,该装置还包括:
判断单元34,用于在根据目标监听事件调用对应的业务逻辑代码之前,判断在第一预设时间内,目标监听事件是否被连续触发且没有其他监听事件对应的业务逻辑代码被调用。
由于观众在进行一次操作行为时,可能会多次触发同一监听事件。为了避免这种情况发生,本实施例会预先设置一个相同监听事件的触发间隔时间(第一预设时间),在确定了目标监听事件后,判断单元34会进一步判断在第一预设时间内该目标监听事件是否被连续触发,并且在连续触发的过程中没有其他监听事件的业务逻辑代码被调用;若是,则说明仅仅是由于该监听事件本身的特性导致在一次操作行为内其被多次触发;若不是,则说明多次被触发的监听事件是对应了多个操作行为,是需要在该监听事件每次被触发时都调用对应的业务逻辑代码的。
确定单元32,还用于在判断为是时,确定发生一个所述目标监听事件。
由于对此触发的目标监听事件仅对应一个操作行为,确定单元32仅取其中一个目标监听事件作为代表即可,以确保后续业务逻辑代码的调用正确。
可选的,调用单元33,还用于在启动视频播放页面时,调用监听函数。
在观众打开了包含有被监听视频播放器的视频播放页面时,即确定需要开始监听视频播放器,就需要调用单元33立即调用该视频播放页面中的监听函数,以便对视频播放器进行及时地监听。
判断单元34,还用于在调用监听函数之后,判断视频播放器在视频播放页中是否加载完成。
调用单元33,还用于在判断未加载完成,且时间间隔达到第二预设时间时,重新调用监听函数。
在第一次调用监听函数后,判断单元34会判断需要监听的视频播放器是否已在视频播放页面中加载完成,在判断其未加载完成时,通过调用单元33在时间间隔达到第二预设时间时,重新调用将监听函数,直至确定视频播放器已加载完成,以避免调用了监听函数,但视频播放器未加载完成,使监听函数无法将监听事件插入视频播放器中。
可选的,获取单元31还用于在获取监听函数之前,获取视频播放器对应的多个监听事件。
在监听视频播放器之前,预先获取官方提供的监听事件,至少获取包括用于监听开始加载视频、结束加载视频、播放视频、暂停视频、缓冲视频、拖拽视频进度以及结束播放视频这七种操作行为的监听事件。
确定单元32,还用于确定每个监听事件对应的业务逻辑代码。
将获取的监听事件以及其对应的组合代码对测试网页的视频播放器进行监听,然后根据需要模拟观众的操作行为对视频播放器进行操作,然后对触发的监听事件进行分析。确定单元32根据监听事件的官方描述、监听事件对应的业务逻辑代码、以及触发监听事件的操作行为,确定监听事件、业务逻辑代码、操作行为之间的对应关系。
参照图5所示,该装置还包括:
封装单元35,用于将监听事件和对应的业务逻辑代码进行封装,得到监听函数。
在获取了监听事件和对应的业务逻辑代码后,封装单元35对所有的监听事件和业务逻辑代码进行封装,生成监听函数,使用户在调用监听事件的时候,无需一一部署单个监听事件对应的业务逻辑代码,直接调用该业务逻辑代码即可。
进一步的,该监听函数能够监听用户对视频播放器进行的开始加载视频、结束加载视频、播放视频、缓冲视频、暂停视频、拖拽视频进度条以及结束播放视频这七种操作行为中的任意一种或多种。
本发明实施例提供的视频播放器的监听装置,将各个监听事件都匹配有单独对应的业务逻辑代码,然后使监听函数具有该监听事件和对应的逻辑代码。与现有技术中在对视频播放器进行监听时,需要使用的监听事件人工插入视频播放页面的视频播放器中相比,在通过获取单元31获取监听函数并通过确定单元32使监听函数在监听到观众对视频播放器的操作行为时,根据该操作行为准确地确定需要被触发的目标监听事件,进而使调用单元33能够正确地调用对应的业务逻辑代码,完成监听任务。而且,为了保证监听函数能够准确启动并进行监听,还增加了重试逻辑,通过判断单元34和调用单元33在确定视频播放器未加载完成时自动重新调用监听函数。为了能够进一步确保业务逻辑代码的正确调用,判断单元34和确定单元32还会根据视频播放器播放状态的变化,以及目标监听事件是否被连续触发来确定需要触发的目标监听事件。
所述视频播放器的监听装置包括处理器和存储器,上述获取单元、确定单元和调用单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来解决现有技术在监听对视频播放器的操作行为时,产生逻辑代码调用错误的问题。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现以下视频播放器的监听方法:
获取监听函数,所述监听函数包括预设的一一对应的监听事件和业务逻辑代码。
当所述监听函数监听到对视频播放器的操作行为时,确定所述操作行为对应的目标监听事件。
根据所述目标监听事件调用对应的业务逻辑代码。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行以下视频播放器的监听方法:
获取监听函数,所述监听函数包括预设的一一对应的监听事件和业务逻辑代码。
当所述监听函数监听到对视频播放器的操作行为时,确定所述操作行为对应的目标监听事件。
根据所述目标监听事件调用对应的业务逻辑代码。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:
获取监听函数,所述监听函数包括预设的一一对应的监听事件和业务逻辑代码;
当所述监听函数监听到对视频播放器的操作行为时,确定所述操作行为对应的目标监听事件;
根据所述目标监听事件调用对应的业务逻辑代码。
可选的,确定所述操作行为对应的目标监听事件,包括:
获取所述操作行为触发的至少一个监听事件;
获取所述视频播放器根据所述操作行为产生的播放状态变化信息;
根据所述播放状态变化信息,从被触发的至少一个监听事件中确定所述操作行为对应的目标监听事件。
可选的,在根据所述目标监听事件调用对应的业务逻辑代码之前,还包括:
判断在第一预设时间内,所述目标监听事件是否被连续触发且没有其他监听事件对应的业务逻辑代码被调用;
若是,则确定发生一个所述目标监听事件。
可选的,还包括:
在启动视频播放页面时,调用所述监听函数,所述视频播放页面中包含所述视频播放器;和/或,
在调用所述监听函数之后,所述方法还包括:
判断所述视频播放器在所述视频播放页中是否加载完成;
若未加载完成,则在时间间隔达到第二预设时间时,重新调用所述监听函数。
可选的,在获取监听函数之前,还包括:
获取所述视频播放器对应的多个监听事件;
确定每个所述监听事件对应的业务逻辑代码;
将所述监听事件和对应的业务逻辑代码进行封装,得到所述监听函数。
本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:
获取监听函数,所述监听函数包括预设的一一对应的监听事件和业务逻辑代码。
当所述监听函数监听到对视频播放器的操作行为时,确定所述操作行为对应的目标监听事件。
根据所述目标监听事件调用对应的业务逻辑代码。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种视频播放器的监听方法,其特征在于,所述方法包括:
获取监听函数,所述监听函数包括预设的一一对应的监听事件和业务逻辑代码;
当所述监听函数监听到对视频播放器的操作行为时,确定所述操作行为对应的目标监听事件;
根据所述目标监听事件调用对应的业务逻辑代码。
2.根据权利要求1所述的方法,其特征在于,确定所述操作行为对应的目标监听事件,包括:
获取所述操作行为触发的至少一个监听事件;
获取所述视频播放器根据所述操作行为产生的播放状态变化信息;
根据所述播放状态变化信息,从被触发的至少一个监听事件中确定所述操作行为对应的目标监听事件。
3.根据权利要求1或2所述的方法,其特征在于,在根据所述目标监听事件调用对应的业务逻辑代码之前,所述方法还包括:
判断在第一预设时间内,所述目标监听事件是否被连续触发且没有其他监听事件对应的业务逻辑代码被调用;
若是,则确定发生一个所述目标监听事件。
4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
在启动视频播放页面时,调用所述监听函数,所述视频播放页面中包含所述视频播放器;和/或,
在调用所述监听函数之后,所述方法还包括:
判断所述视频播放器在所述视频播放页中是否加载完成;
若未加载完成,则在时间间隔达到第二预设时间时,重新调用所述监听函数。
5.根据权利要求1或2所述的方法,其特征在于,在获取监听函数之前,所述方法还包括:
获取所述视频播放器对应的多个监听事件;
确定每个所述监听事件对应的业务逻辑代码;
将所述监听事件和对应的业务逻辑代码进行封装,得到所述监听函数。
6.一种视频播放器的监听装置,其特征在于,所述装置包括:
获取单元,用于获取监听函数,所述监听函数包括预设的一一对应的监听事件和业务逻辑代码;
确定单元,用于当所述监听函数监听到对所述视频播放器的操作行为时,确定所述操作行为对应的目标监听事件;
调用单元,用于根据所述目标监听事件调用对应的业务逻辑代码。
7.根据权利要求6所述的装置,其特征在于,所述确定单元包括:
获取模块,用于获取所述操作行为触发的至少一个监听事件;
所述获取模块,还用于获取所述视频播放器根据所述操作行为产生的播放状态变化信息;
确定模块,用于根据所述播放状态变化信息,从被触发的至少一个监听事件中确定所述操作行为对应的目标监听事件。
8.根据权利要求6或7所述的装置,其特征在于,所述装置还包括:
判断单元,用于在根据所述目标监听事件调用对应的业务逻辑代码之前,判断在第一预设时间内,所述目标监听事件是否被连续触发且没有其他监听事件对应的业务逻辑代码被调用;
所述确定单元,还用于在判断为是时,确定发生一个所述目标监听事件。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至权利要求5中任意一项所述的视频播放器的监听方法。
10.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至权利要求5中任意一项所述的视频播放器的监听方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811105198.4A CN110944231B (zh) | 2018-09-21 | 2018-09-21 | 视频播放器的监听方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811105198.4A CN110944231B (zh) | 2018-09-21 | 2018-09-21 | 视频播放器的监听方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110944231A true CN110944231A (zh) | 2020-03-31 |
CN110944231B CN110944231B (zh) | 2022-01-14 |
Family
ID=69904748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811105198.4A Active CN110944231B (zh) | 2018-09-21 | 2018-09-21 | 视频播放器的监听方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110944231B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111460350A (zh) * | 2020-04-07 | 2020-07-28 | 上海熙菱信息技术有限公司 | 一种防抖与节流封装方法及系统 |
CN112135162A (zh) * | 2020-09-25 | 2020-12-25 | 北京达佳互联信息技术有限公司 | 业务执行方法、装置及服务器 |
CN115297371A (zh) * | 2022-08-01 | 2022-11-04 | 上海东方传媒技术有限公司 | 一种自适应播放器的生成方法及自适应播放器设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130061129A1 (en) * | 2011-09-07 | 2013-03-07 | Compuware Corporation | Performance monitoring of a media player launched by a web browser |
CN103885757A (zh) * | 2012-12-20 | 2014-06-25 | 上海明想电子科技有限公司 | 一种Javascript事件监听的管理方法 |
CN104469467A (zh) * | 2014-12-10 | 2015-03-25 | 北京奇虎科技有限公司 | 一种浏览器客户端中进行视频播放的方法、装置和系统 |
CN105681841A (zh) * | 2015-12-30 | 2016-06-15 | 广东欧珀移动通信有限公司 | 一种基于浏览器的视频播放控制方法及系统 |
CN106331757A (zh) * | 2016-08-17 | 2017-01-11 | 无锡天脉聚源传媒科技有限公司 | 一种控制音视频数据播放的方法及装置 |
CN106603601A (zh) * | 2015-10-15 | 2017-04-26 | 阿里巴巴集团控股有限公司 | 服务处理方法、装置、系统及终端设备 |
CN107562476A (zh) * | 2017-08-29 | 2018-01-09 | 鲸彩在线科技(大连)有限公司 | 一种生成应用程序的方法及装置 |
CN107943683A (zh) * | 2017-10-30 | 2018-04-20 | 北京奇虎科技有限公司 | 一种测试脚本生成方法、装置、电子设备及存储介质 |
CN108089856A (zh) * | 2016-11-22 | 2018-05-29 | 北京国双科技有限公司 | 一种页面元素的监听方法及装置 |
CN108509287A (zh) * | 2018-04-11 | 2018-09-07 | 北京知道创宇信息技术有限公司 | 请求状态管理方法、装置、电子设备及可读存储介质 |
-
2018
- 2018-09-21 CN CN201811105198.4A patent/CN110944231B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130061129A1 (en) * | 2011-09-07 | 2013-03-07 | Compuware Corporation | Performance monitoring of a media player launched by a web browser |
CN103885757A (zh) * | 2012-12-20 | 2014-06-25 | 上海明想电子科技有限公司 | 一种Javascript事件监听的管理方法 |
CN104469467A (zh) * | 2014-12-10 | 2015-03-25 | 北京奇虎科技有限公司 | 一种浏览器客户端中进行视频播放的方法、装置和系统 |
CN106603601A (zh) * | 2015-10-15 | 2017-04-26 | 阿里巴巴集团控股有限公司 | 服务处理方法、装置、系统及终端设备 |
CN105681841A (zh) * | 2015-12-30 | 2016-06-15 | 广东欧珀移动通信有限公司 | 一种基于浏览器的视频播放控制方法及系统 |
CN106331757A (zh) * | 2016-08-17 | 2017-01-11 | 无锡天脉聚源传媒科技有限公司 | 一种控制音视频数据播放的方法及装置 |
CN108089856A (zh) * | 2016-11-22 | 2018-05-29 | 北京国双科技有限公司 | 一种页面元素的监听方法及装置 |
CN107562476A (zh) * | 2017-08-29 | 2018-01-09 | 鲸彩在线科技(大连)有限公司 | 一种生成应用程序的方法及装置 |
CN107943683A (zh) * | 2017-10-30 | 2018-04-20 | 北京奇虎科技有限公司 | 一种测试脚本生成方法、装置、电子设备及存储介质 |
CN108509287A (zh) * | 2018-04-11 | 2018-09-07 | 北京知道创宇信息技术有限公司 | 请求状态管理方法、装置、电子设备及可读存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111460350A (zh) * | 2020-04-07 | 2020-07-28 | 上海熙菱信息技术有限公司 | 一种防抖与节流封装方法及系统 |
CN111460350B (zh) * | 2020-04-07 | 2023-06-09 | 上海熙菱信息技术有限公司 | 一种防抖与节流封装方法及系统 |
CN112135162A (zh) * | 2020-09-25 | 2020-12-25 | 北京达佳互联信息技术有限公司 | 业务执行方法、装置及服务器 |
CN115297371A (zh) * | 2022-08-01 | 2022-11-04 | 上海东方传媒技术有限公司 | 一种自适应播放器的生成方法及自适应播放器设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110944231B (zh) | 2022-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111045952B (zh) | 软件测试方法、流量回放装置、终端设备及可读存储介质 | |
CN110944231B (zh) | 视频播放器的监听方法及装置 | |
CN109600669B (zh) | 一种对象播放监测方法、装置、存储介质及处理器 | |
CN110020339B (zh) | 基于无埋点的网页数据采集方法及装置 | |
CN108121633B (zh) | 异常捕获方法及装置 | |
CN110879781B (zh) | 程序调试方法、装置、电子设备及计算机可读存储介质 | |
KR20160000758A (ko) | 품질테스트장치 및 방법 | |
CN108134812B (zh) | 数据处理方法和装置 | |
CN108399119B (zh) | 浏览服务内核引擎数据处理、自动化测试的方法和装置 | |
US10635575B2 (en) | Testing of enterprise resource planning systems | |
CN107220165B (zh) | 一种模拟线上压力测试的方法和装置 | |
CN111353143A (zh) | 敏感权限检测方法、装置及存储介质 | |
CN111859205A (zh) | 一种用于批量处理任务的解析方法及设备 | |
CN110020074B (zh) | 确定网页流失率的方法及装置 | |
CN110837467B (zh) | 软件测试方法、装置以及系统 | |
CN108268369B (zh) | 测试数据获取方法及装置 | |
CN104298589B (zh) | 一种性能测试方法和设备 | |
CN111522749A (zh) | 页面测试方法、装置、可读存储介质及电子设备 | |
CN115617668A (zh) | 一种兼容性测试方法、装置及设备 | |
CN109656825A (zh) | 美术资源处理的方法及装置、电子设备、存储介质 | |
CN116302095A (zh) | 指令跳转判断方法、装置、电子设备及可读存储介质 | |
CN111177593B (zh) | 一种数据打通方法及系统 | |
CN108234196B (zh) | 故障检测方法及装置 | |
CN112905449B (zh) | 目标测试方法、装置、设备和存储介质 | |
CN110633214A (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 |