CN105472417A - 获取视频播放器异常的方法及装置 - Google Patents
获取视频播放器异常的方法及装置 Download PDFInfo
- Publication number
- CN105472417A CN105472417A CN201510828121.XA CN201510828121A CN105472417A CN 105472417 A CN105472417 A CN 105472417A CN 201510828121 A CN201510828121 A CN 201510828121A CN 105472417 A CN105472417 A CN 105472417A
- Authority
- CN
- China
- Prior art keywords
- information
- video player
- exception
- abnormal
- video
- 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
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/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
- H04N17/00—Diagnosis, testing or measuring for television systems or their details
-
- 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/258—Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
- H04N21/25808—Management of client data
- H04N21/25833—Management of client data involving client hardware characteristics, e.g. manufacturer, processing or storage capabilities
Abstract
本发明公开了一种获取视频播放器异常的方法及装置。其中,该方法包括:当监听到视频播放器在运行过程中发生异常时,获取捕捉到的异常信息;根据异常信息确定异常的类型,异常的类型至少包括:视频播放器的底层异常和/或上层异常;根据异常的类型调用视频播放器内部对应的回调函数;使用回调函数处理异常信息,生成异常监测结果,本发明解决了现有技术视频客户端无法监测到所有类型的异常,导致异常监测结果不准确的技术问题。
Description
技术领域
本发明涉计算机领域,具体而言,涉及一种获取视频播放器异常的方法及装置。
背景技术
随着网络环境的不断升级、移动设备性能的持续提高,越来越多的用户选择在手机上观看视频。在手机上观看视频,就需要首先安装视频播放器(视频客户端);用户在使用视频播放器播放视频的过程中,经常会遇到视频播放器的两类出错:视频播放器出现异常然后崩溃、视频播放过程中出现的视频播放错误。面对上述错误,现有的视频播放器一般会捕获异常和识别出视频播放错误,然后将异常信息以及播放错误信息上传至服务器,以便于开发设计人员分析错误原因并改进视频播放器。
需要说明的是,上述现有的视频播放器解决播放器出错的方案会出现以下缺陷:
(1)导致视频播放器出现的崩溃的异常的类型一般分为视频播放器底层(C/C++语言层面)的异常与视频播放器上层(JAVA语言层面)的异常,现有的视频播放器只能捕捉部分类型的异常,不能监测到所有类型的异常,导致异常监测结果不准确。
(2)在视频播放器从启动至播放视频结束的过程中,现有的视频播放器往往不能将捕获的异常与播放错误信息同时上传至服务器,导致播放器出错的监测结果不准确。
针对上述现有技术中现有技术视频客户端无法监测到所有类型的异常,导致异常监测结果不准确的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种获取视频播放器异常的方法及装置,以至少解决现有技术视频客户端无法监测到所有类型的异常,导致异常监测结果不准确的技术问题。
根据本发明实施例的一个方面,提供了一种获取视频播放器异常的方法,包括:当监听到视频播放器在运行过程中发生异常时,获取捕捉到的异常信息;根据异常信息确定异常的类型,异常的类型至少包括:视频播放器的底层异常和/或上层异常;根据异常的类型调用视频播放器内部对应的回调函数;使用回调函数处理异常信息,生成异常监测结果。
根据本发明实施例的另一方面,还提供了一种获取视频播放器异常的装置,包括:第一获取单元,用于当监听到视频播放器在运行过程中发生异常时,获取捕捉到的异常信息;第一确定单元,用于根据异常信息确定异常的类型,异常的类型至少包括:视频播放器的底层异常和/或上层异常;调用单元,用于根据异常的类型调用视频播放器内部对应的回调函数;处理单元,用于使用回调函数处理异常信息,生成异常监测结果。
在本发明实施例中,采用当监听到视频播放器在运行过程中发生异常时,获取捕捉到的异常信息;根据异常信息确定异常的类型,异常的类型至少包括:视频播放器的底层异常和/或上层异常;根据异常的类型调用视频播放器内部对应的回调函数;使用回调函数处理异常信息,生成异常监测结果,解决了现有技术视频客户端无法监测到所有类型的异常,导致异常监测结果不准确的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的一种获取视频播放器异常的方法的计算机终端的硬件结构框图;
图2是根据本发明实施例的一种获取视频播放器异常的方法的流程示意图;
图3是根据本发明实施例的一种可选的获取视频播放器异常的方法的示意图;
图4是根据本发明实施例的一种可选的获取视频播放器异常的方法的示意图;
图5是根据本发明实施例的一种获取视频播放器异常的装置的结构示意图;
图6是根据本发明实施例的一种可选的获取视频播放器异常的装置的结构示意图;
图7是根据本发明实施例的一种可选的获取视频播放器异常的装置的结构示意图;
图8是根据本发明实施例的一种可选的获取视频播放器异常的装置的结构示意图;
图9是根据本发明实施例的一种可选的获取视频播放器异常的装置的结构示意图;
图10是根据本发明实施例的一种可选的获取视频播放器异常的装置的结构示意图;
图11是根据本发明实施例的一种可选的获取视频播放器异常的装置的结构示意图;
图12是根据本发明实施例的一种可选的获取视频播放器异常的装置的结构示意图;以及
图13是根据本发明实施例的一种可选的获取视频播放器异常的装置的结构示意图。
图14是根据本发明实施例的一种计算机终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请中涉及到的名词解释如下:
视频播放器:是指能够播放以数字信号形式存储的视频流的软件。
异常上报:视频播放器客户端在手机上运行过程中,由于种种原因导致的,客户端在运行过程中出现崩溃的异常。导致崩溃的异常一般有两类:一种是客户端底层的C/C++语言层面的异常,另一种是客户端上层未捕捉处理的异常。这两种异常的信息通过网络发送给运营服务器的过程,叫异常上报。
播放错误:视频播放器在手机上播放视频的过程中,由于视频格式不规范、网络不稳定、视频解析错误、播放器逻辑错误、解码出错、等等原因导致无法正常播放视频,在播放界面向用户弹出对应的错误提示语。
JNI层:JNI是JavaNativeInterface的缩写,它提供了若干的API,实现了Java和其他语言的通信(主要是C&C++)。JNI标准是java平台的一部分,它允许Java代码和其他语言写的代码进行交互。一般手机的视频播放器的界面部分都是使用java开发的,而视频播放器的引擎都是使用C&C++开发的,则就需要JNI层实现java层与播放引擎的交互。
函数符号表:在编译生成视频播放器客户端安装包的过程中,需要不断收集、记录和使用源程序中一些函数字符串、函数名称、函数符号的类型和特征等相关信息,这些函数信息保存在函数符号表中。
底层异常:是视频客户端底层播放逻辑层中,使用C/C++语言编写的代码模块中可能产生的异常。
上层异常:是视频客户端上层UI界面层中,使用Java或者objective-c语言编写的代码模块中可能产生的异常。
实施例1
根据本发明实施例,提供了一种获取视频播放器异常的方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示流程图描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本申请实施例的获取视频播放器异常的方法的移动终端的硬件结构框图。如图1所示,计算机终端10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,移动终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的多终端的实时通讯方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的多终端的实时通讯方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(NetworkInterfaceController,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
在上述运行环境下,如图2所示,获取视频播放器异常的方法可以包括:
步骤S22,当监听到运行过程中的视频播放器发生异常时,获取捕捉到的异常信息。
在上述步骤S22中,可以在用户在启动终端设备中的视频播放器(视频客户端)之后,采用终端设备的操作系统来监听视频播放器是否发生异常,上述异常可以为导致视频播放器出现崩溃的异常,在终端设备的操作系统监听到视频播放器在运行过程中发生异常的情况下,可以利用上述操作系统的现有的异常捕捉方案来捕捉上述异常并获取异常信息。上述视频播放器可以为网络播放器,上述操作系统可以为Android系统,也可以为IOS系统等操作系统,上述终端设备可以为:智能手机、平板电脑、电子播放器等。
以获取运行在Android系统中的视频播放器的异常为例,用户可以启动安卓智能手机中的视频播放器(例如腾讯视频播放器),在视频播放器启动之后,Android系统会时刻监听视频播放器的运行状况,如果视频播放器出现一个可以导致崩溃的异常,Android系统则会利用Android系统中的异常捕捉方案来捕获该异常,并获取上述异常的异常信息。
步骤S24,根据异常信息确定异常的类型,异常的类型至少包括:视频播放器的底层异常和/或上层异常。
在上述步骤S24中,终端设备的操作系统可以根据上述异常的信息来确定异常的类型,上述异常的类型可以用于表征异常在播放器中发生的来源,如果上述异常信息为野指针、除零、数组越界、指针越界、空指针访问异常等信息,终端设备的操作系统则确定异常为底层异常,如果上述异常信息为objective-c的NSExceptionNSArray(访问元素越界)或者Java抛出的异常等,终端设备的操作系统则确定上述异常为上层异常,需要说明的是,上述底层异常可以为C/C++语言层面的异常,上述上层异常可以为未捕捉异常(UncaughtException)。
仍旧以获取运行在Android系统中的视频播放器的异常为例,如果Android系统发现视频播放器发生的异常为Java抛出的异常,那么Android系统在确定上述异常为视频播放器的上层异常,需要说明的是,如果上述异常没有在视频播放器的上层捕捉到,那么视频播放器就会崩溃。
步骤S26,根据异常的类型调用视频播放器内部对应的回调函数。
在上述步骤S26中,终端设备的操作系统可以根据确定到的异常类型决定调用与该异常类型对应回调函数,即在播放器器内部可以设置多个不同的回调函数,每个回调函数对应不同类型的异常。
仍旧以获取运行在Android系统中的视频播放器的异常为例,在视频播放器内容预设有第一回调函数与第二回调函数,第一回调函数对应的异常类型为底层异常,第二回调函数对应的异常类型为上层异常,如果Android系统确定视频播放器发生的异常的为视频播放器底层的C/C++语言层面异常,Android系统则调用视频播放器内部的第一回调函数,如果Android系统确定视频播放器发生的异常的为播放器上层的未捕捉异常,Android系统则调用视频播放器内部的第二回调函数。
步骤S28,使用回调函数处理异常信息,生成异常监测结果。
在上述步骤S28中,Android系统可以使用与上述异常的异常类型对应的回调函数来对异常信息进行相应的处理,并生成异常监测结果,上述异常监测结果可以为异常发生的原因。
本申请上述实施例一公开的方案中,如果要获取到视频播放器发生的异常,可以首先启动视频播放器,然后在当监听到视频播放器在运行过程中发生异常时,获取捕捉到的异常信息,接着,根据异常信息确定异常的类型,异常的类型至少包括:视频播放器的底层异常和/或上层异常,接着,根据异常的类型调用视频播放器内部对应的回调函数,最后,使用回调函数处理异常信息,生成异常监测结果。容易注意到,本实施例的方案可以根据异常的不同类型调用播放器内部不同的回调函数,由每个回调函数对其对应的每个异常信息进行处理。因此,通过本发明实施例所提供的方案,只需要在视频播放器中预设对应的不同类型回调函数则可以实现对不同类型的异常的处理,客服了现有的视频播放器不能获取所有异常的缺陷,提高了视频播放器的异常获取准确性,而且,视频播放器异常的获取的过程中,利用终端设备的操作系统中现有的异常捕捉方案来获取异常,无需在视频播放器内部设置异常捕捉算法,可以节省开发资源。由此,本申请提供的上述实施例一的方案解决了现有技术视频客户端无法监测到所有类型的异常,导致异常监测结果不准确的技术问题。
在本申请提供的一种可选实施例中,在步骤S22,获取捕捉到的异常信息之前,本实施例提供的方法还可以包括:
步骤S20,在系统的信号机制捕捉接口中设定用于处理底层异常的回调函数,和/或在系统的未捕捉异常监听接口中设定用于处理上层异常的回调函数。
在上述步骤S20中,在操作系统获取捕捉到的异常信息之前,可以在操作系统中现有的信号机制捕捉接口中设置回调函数和/或在操作系统中现有的未捕捉异常监听接口中设置回调函数,在本方案中,可以通过上述信号机制捕捉接口与上述未捕捉异常监听接口来实现捕捉不同类型的异常,即,当视频播放器发生第一类型的异常的情况下,信号机制捕捉接口则会捕捉到上述第一类型的异常,当视频播放器发生第二类型的异常的情况下,由未捕捉异常监听接口来捕捉上述第二类型的异常,需要说明的是,在信号机制捕捉接口与未捕捉异常监听接口捕捉到异常之后,可以通过其设定的回调函数的名称来调用视频播放器内部的回调函数。
在本申请提供的一种可选实施例中,在步骤S24,根据异常信息确定异常的类型之后,本实施例提供的方法还可以包括:
步骤S251,在监听到的异常的类型为底层异常的情况下,通过信号机制捕捉接口将监听到的底层异常传输至视频播放器。
在上述步骤S251中,如果操作系统确定捕捉到的异常为底层异常的情况下,操作系统则通过系统内部的信号机制捕捉接口将上述底层异常发送至视频播放器,由视频播放器对捕捉到的异常进行处理,需要说明的是,操作系统可以通过信号机制捕捉接口将上述底层异常传输至视频播放器中与底层异常对应的回调函数,由与底层异常对应的回调函数对上述底层异常进行处理。
仍旧以获取运行在Android系统中的视频播放器的异常为例,Android系统中的信号机制捕捉接口(例如Linux信号机制接口)在捕获到异常之后,如果确定该异常为底层异常,Android系统则通过Linux信号机制将上述底层异常传输到视频播放器的第一回调函数中,由上述第一回调函数对上述底层异常进行处理。
步骤S252,在监听到的异常的类型为上层异常的情况下,通过未捕捉异常监听接口将监听到的上层异常传输至视频播放器。
在上述步骤S252中,如果操作系统确定捕捉到的异常为上层异常的情况下,操作系统则通过系统内部的未捕捉异常监听接口将上述上层异常发送至视频播放器,由视频播放器对捕捉到的异常进行处理,需要说明的是,操作系统可以通过未捕捉异常监听接口将上述底层异常传输至视频播放器中与上层异常对应的回调函数,由与上层异常对应的回调函数对上述上层异常进行处理。
仍旧以获取运行在Android系统中的视频播放器的异常为例,Android系统中的未捕捉异常监听接口(例如UncaughtExceptionHandler)在捕获到异常之后,如果确定该异常为上层异常,Android系统则通过UncaughtExceptionHandler将上述上层异常传输到视频播放器的第二回调函数中,由上述第二回调函数对上述上层异常进行处理。
在本申请提供的一种可选实施例中,在异常的类型为底层异常的情况下,步骤S28,使用回调函数处理异常信息,生成异常监测结果的步骤可以包括:
步骤S281,根据系统中预存的函数符号表对异常信息进行还原,得到底层异常的堆栈信息。
在上述步骤S281中,操作系统中可以预存有函数符号表,由于系统内部的捕获到的底层异常信息中包含有符号信息,因此视频播放器内部的回调函数在接收到信号机制捕捉接口传输的底层异常之后,可以通过系统中预存的函数符号表还原出底层异常的调用栈信息即上述堆栈信息。
需要说明的是,上述堆栈信息可以为在视频播放器中发生异常出的函数调用链信息(比如函数名称)。在还原之前调用栈里的函数调用链信息保存的都是函数调用链中相关函数的地址信息,在本方案中可以根据上述函数符号表把相关函数的地址信息都转换成函数名称,以便于编译开发人员分析解决视频播放器的代码漏洞。
仍旧以获取运行在Android系统中的视频播放器的异常为例,Android系统中的Linux信号机制可以将捕捉到的底层的C/C++语言异常发送至播放器内部专门用于处理底层异常的第一回调函数,第一回调函数可以通过系统中预存的函数符号表还原出底层异常的调用栈信息即上述堆栈信息。
步骤S282,获取与视频播放器相关联的参数信息,参数信息包括如下任意一个或多个信息:视频播放器当前播放的视频信息、用于运行视频播放器的终端设备的信息。
在上述步骤S282中,上述回调函数还可以获取视频播放器播放的视频信息(视频流信息),以及运行视频播放器的终端设备的信息(例如手机终端的型号、手机终端制造商信息、手机操作系统版本信息等)。
步骤S283,根据堆栈信息和参数信息生成异常监测结果。
在上述步骤S283中,视频播放器内部的回调函数可以根据底层异常的堆栈信息以及上述视频播放器当前播放的视频信息、用于运行视频播放器的终端设备的信息生成异常监测结果。
在本申请提供的一种可选实施例中,在异常的类型为上层异常的情况下,步骤S28,使用回调函数处理异常信息,生成异常监测结果的步骤可以包括:
步骤S284,从异常信息中抽取到上层异常的堆栈信息。
在上述步骤S284中,视频播放器内部的回调函数在接收到未捕捉异常监听接口传输的上层异常之后,回调函数可以从上层异常的信息中抽取到异常的堆栈信息。需要说明的是,上述堆栈信息可以为视频播放器发生异常时的函数调用链的信息,比如函数名称。
仍旧以获取运行在Android系统中的视频播放器的异常为例,Android系统中的UncaughtExceptionHandler可以将捕捉到的上层异常(Java异常)发送至播放器内部专门用于处理上层异常的第二回调函数,第二回调函数可以从上层异常的信息中抽取到异常的堆栈信息。
步骤S285,获取与视频播放器相关联的参数信息,参数信息包括如下任意一个或多个信息:视频播放器当前播放的视频信息、用于运行视频播放器的终端设备的信息。
在上述步骤S285中,上述视频播放器内部的回调函数还可以获取视频播放器播放的视频信息(包括:视频URL、视频编码格式、帧率、音频编码格式、音频采样率、等等),以及运行视频播放器的终端设备的信息(例如手机终端的型号、手机终端制造商信息、手机操作系统版本信息等)。
步骤S286,根据堆栈信息和参数信息生成异常监测结果。
在上述步骤S286中,视频播放器内部的回调函数可以根据上层异常的堆栈信息以及上述视频播放器当前播放的视频信息、用于运行视频播放器的终端设备的信息生成异常监测结果。
在本申请提供的一种可选实施例中,在步骤S28,使用回调函数处理异常信息,生成异常监测结果之后,本实施例提供的方法还可以包括:
步骤S30,将异常监测结果上报至对应的服务器。
在上述步骤S30中,视频播放器内部的回调函数可以将上层或底层异常的堆栈信息以及上述视频播放器当前播放的视频信息、用于运行视频播放器的终端设备的信息上报至对应的运营服务器,以帮助开发设计人员分析异常原因改进视频播放器。
仍旧以获取运行在Android系统中的视频播放器的异常为例,播放器内部的回调函数在生成底层异常或上层异常的监测结果之后,可以将上述底层异常或上层异常的监测结果发送至视频播放器运营商的服务器,以帮助开发人员(播放器底层开发人员或播放器上层界面设计人员)根据异常原因改进视频播放器。
在本申请提供的一种可选实施例中,视频播放器在运行过程中,接收到播放指令时自动启动播放视频,在启动播放视频之后,本实施例提供的方法可以包括:
步骤S1,在检测到发生播放错误的情况下,视频播放器生成错误信息。
在上述步骤S1中,在视频播放器播放视频的过程中,如果视频播放器内部的错误发现逻辑检测到播放发生错误的情况下,可以生成错误信息。
步骤S2,视频播放器处理错误信息,生成播放错误参数,其中,播放错误参数用于表征发生播放错误的原因因素。
在上述步骤S2中,视频播放器内部的错误发现逻辑可以根据上述错误信息生成错误参数,上述错误参数可以用于表征发生播放错误的原因因素。
步骤S3,获取与播放视频相关联的播放参数信息,播放参数信息包括如下任意一个或多个信息:开始播放的视频的视频信息、用于运行视频播放器的终端设备的信息。
在上述步骤S3中,视频播放器内部的错误发现逻辑可以获取视频播放器播放的视频信息(包括:视频URL、视频编码格式、帧率、音频编码格式、音频采样率、等等),以及运行视频播放器的终端设备的信息(例如手机终端的型号、手机终端制造商信息、手机操作系统版本信息等)。
步骤S4,根据播放错误参数和播放参数信息生成播放异常监测结果。
步骤S5,将播放异常监测结果上报至对应的服务器。
在上述步骤S5中,上述播放异常监测结果可以为播放错误结果。视频播放器内部的错误发现逻辑可以将播放错误参数和播放器播放的视频信息(包括:视频URL、视频编码格式、帧率、音频编码格式、音频采样率等等),以及运行视频播放器的终端设备的信息(例如手机终端的型号、手机终端制造商信息、手机操作系统版本信息等)发送至播放器运营商服务器,以便开发人员根据不同的错误决定错误解决方案。
需要说明的是,上述步骤S1至S5的方案可以发生在视频播放器从启动至播放视频结束的全过程。
在本申请提供的一种可选实施例中,在步骤S4,根据播放错误参数和播放参数信息生成播放异常监测结果之后,本实施例提供的方法可以包括:
步骤S41,视频播放器将播放错误参数上传至视频播放器的播放界面。
步骤S42,播放界面根据播放错误参数的不同,显示不同的建议信息。
在上述步骤S41至步骤S42中,视频播放器底层可以将上述错误参数发送至视频播放器的上层(播放界面层),视频播放器的播放界面层可以分析上述不同的错误参数,然后向用户展示不同的错误提示语。
仍旧以获取运行在Android系统中的视频播放器的异常为例,如果上述错误参数所表征的错误原因为手机的内存满了导致播放错误,上述提示语可以为“您的手机内存已满,请清除缓存后重试”,如果上述错误参数所表征的错误原因为网络原因,上述提示语可以为“检测到您的网络未连接,请重试”,如果上述错误参数所表征的错误原因播放器不支持视频的格式,上述提示语可以为“暂不支持您所选择播放的格式,抱歉”。
在本申请提供的一种可选实施例中,在步骤S41,视频播放器将播放错误参数上传至视频播放器的播放界面之前,本实施例提供的方法还可以包括:
步骤S39,视频播放器根据播放异常监测结果确定待上报的错误数据。
步骤S40,通过JNI层上传错误数据。
在上述步骤S40中,视频播放器的错误发现逻辑可以根据播放异常监测结果中根据错误原因确定需要上报至服务器的错误数据(形式可以为错误号),然后将上述错误号以事件的形式通过JNI层上传至视频播放器的上层。
在本申请提供的一种可选实施例中,在步骤S2,视频播放器处理错误信息之前,本实施例提供的方法还可以包括:
步骤S11,通过JNI层下发播放指令,并初始化视频播放引擎和视频解码器。
仍旧以获取运行在Android系统中的视频播放器的异常为例,用户可以点击视频播放器的播放界面(播放器上层)中的开始播放按钮,视频播放器则可以将播放指令通过JNI层向播放器的底层传递,播放器的底层收到播放指令之后,进行初始化视频播放引擎和视频解码器。
步骤S12,在初始化成功之后,根据播放指令在视频播放器中播放视频。
在上述步骤S12中,如果视频播放引擎和视频解码器初始化成功,视频播放器则开始正常播放视频。
步骤S13,视频播放器如果检测到播放错误信息的情况下,确定视频播放器发生播放错误,其中,播放错误信息至少包括:由视频播放引擎和/或视频解码器产生的错误数据。
在上述步骤S13中,在视频播放器播放视频的过程中,视频播放器内部的错误发现逻辑如果检测到播放错误信息,则确定视频播放器发送了播放错误,上述错误发现逻辑可以根据上述播放错误信息来确定发生错误的来源,即视频播放引擎和/或视频解码器。
下面结合图3,描述本申请的一种优选的实施例:
步骤S51,用户点击启动视频播放器客户端(视频播放器)。
步骤S52,向系统的信息机制监听接口设置回调函数。
在上述步骤S52中,上述信息机制监听接口可以为linux的信号机制接口,在本方案中,为了通过linux的信号机制来捕捉底层的C/C++语言层面的异常,需要设定一个回调函数到系统的linux的信号机制接口中。当视频播放器运行过程中,出现底层的C/C++语言层面的异常时,系统的信号机制会立刻捕捉到异常,并调用视频播放器中的回调函数。在执行步骤S52之后,分别执行步骤S53和步骤S56。
步骤S53,判断是否捕捉到底层C/C++语言层面异常。
在上述步骤S53中,视频客户端在运行过程中,如果信号机制(Linux的信号机制)捕捉到了播放器底层的C/C++语言层面的异常,则会调用播放器内部对应的回调函数,把异常信息传递给播放器。如果捕捉到了底层C/C++语言层面异常,执行步骤S54,如果没捕捉到底层C/C++语言层面异常,则执行步骤S71。
步骤S54,根据函数符号表,获取还原堆栈信息。
在上述步骤S54中,可以在回调函数中处理信号机制接口(Linux的信号机制)传递来的异常信息,再根据函数符号表还原出异常的堆栈信息。
步骤S55,把堆栈信息、视频信息、手机信息上报到指定的运营服务器。
在上述步骤S55中,可以获取视频信息以及手机信息,然后将堆栈信息、视频信息、手机信息上报到指定的运营服务器,以帮助开发设计人员分析异常原因改进视频客户端,在执行步骤S55之后,进入步骤S71。
步骤S56,向系统的未捕捉异常监听接口设置回调函数。
在上述步骤S56中,为了通过手机系统的未捕捉异常接口来捕捉客户端上层的未捕捉异常,需要设定一个回调函数到系统的未捕捉异常接口中。则当视频播放器运行过程中,出现客户端上层的未捕捉异常时,系统的未捕捉异常接口会立刻捕捉到异常,并调用视频播放器中的回调函数。执行步骤S56后,分别执行步骤S57和步骤S60。
步骤S57,判断是否捕捉到客户端未捕捉异常。
在上述步骤S57中,在视频客户端运行过程中,如果未捕捉异常接口捕捉到了客户端上层的未捕捉异常,则会调用播放器内部对应的回调函数,把异常信息传递给播放器,在捕捉到客户端的未捕捉异常的情况下,执行步骤S58,否则,进入步骤S71。
步骤S58,从异常信息中抽取堆栈信息。
在上述步骤S58中,回调函数可以处理未捕捉异常接口传递来的信息,并抽取出异常的堆栈信息。
步骤S59,把堆栈信息、视频信息、手机信息上报到指定的运营服务器。
在上述步骤S59中,回调函数可以获取视频信息、手机信息,然后将堆栈信息、视频信息、手机信息上报到指定的运营服务器,以帮助开发设计人员分析异常原因改进视频客户端。在执行步骤S59之后,执行步骤S71。
步骤S60,用户点击开始播放视频。
在上述步骤S60中,视频播放器的上层(播放界面)可以接收用户的播放命令。
步骤S61,通过JNI层向下下发播放命令。
在上述步骤S61中,视频播放器的上层(播放界面)可以把播放命令通过JNI层向底层模块传递。
步骤S62,底层播放引擎初始化。
在上述步骤S62中,可以根据播放命令初始化播放器底层的播放引擎。
步骤S63,底层视频解码器初始化。
在上述步骤S63中,可以根据播放命令初始化播放器底层的视频解码器。
步骤S64,开始正常播放视频。
在上述步骤S64中,在各项初始化工作结束后,开始正常播放视频。
步骤S65,判断播放器是否检测到播放错误。
在上述步骤S65中,如果在视频播放过程中,播放器内部的错误发现逻辑检测到了视频播放错误,则进入步骤S66;否则,执行步骤S651。
步骤S651,播放器播放视频直至播放结束,即执行步骤S71。
步骤S66,分析错误信息,确定上报的错误号。
在上述步骤S66中,播放器内部的错误发现逻辑可以根据获取到的错误信息确定上报的错误号,可选地,可以并通过事件的形式开始向上层上报错误号。
步骤S67,底层上报错误号。
步骤S68,通过JNI层向上传递播放错误号。
在上述步骤S68中,播放器底层可以通过JNI层向上层传递错误信息。
步骤S69,播放界面根据错误号,做不同处理。
在上述步骤S69中,播放器上层(播放界面)可以收根据错误号做不同的错误处理。
步骤S70,把错误信息、视频信息、手机信息上报到指定服务器,
在上述步骤S70中,播放器可以获取正在播放的视频的信息,以及播放器所运行的手机的信息(手机型号、手机操作系统版本信息)以及错误信息上报至播放器的运营服务器,以便开发人员改进播放器,在执行步骤S70之后,执行步骤S71,即结束。
下面结合图4描述本发明的另一优选实施例:
步骤A,通过视频播放器向手机系统的信息机制监听接口设置回调函数。
步骤B,通过视频播放器向手机系统的未捕捉异常监听接口设置回调函数。
步骤C,手机系统捕捉到播放器的底层异常。
在上述步骤C中,可以通过手机系统的信息机制监听接口来捕捉视频播放器的底层异常。
步骤D,手机系统向视频播放器传输底层异常。
在上述步骤D中,手机系统可以通过信息机制监听接口将底层异常发送播放器内部的第一回调函数。
步骤E,视频播放器内部的第一回调函数处理底层异常。
在上述步骤E中,第一回调函数与底层异常类型相对应,即视频播放器内部的第一回调函数专门用于处理底层异常。
步骤F,手机系统捕捉到视频播放器的上层异常。
步骤G,手机系统向视频播放器传输上层异常。
在上述步骤G中,手机系统可以通过信息机制监听接口将上层异常发送播放器内部的第二回调函数。
步骤H,视频播放器内部的第二回调函数处理上述异常。
在上述步骤H中,第二回调函数与底层异常类型相对应,即视频播放器内部的第二回调函数专门用于处理底层异常。
步骤I,视频播放器向服务器发送异常处理结果。
在上述步骤I中,上述异常处理结果可以包括底层异常以及上层异常的异常的堆栈信息。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
根据本发明实施例,还提供了一种用于实施获取视频播放器异常的方法的获取视频播放器异常的装置,如图5所示,该装置包括:第一获取单元51、第一确定单元53、调用单元55以及处理单元57。
其中,第一获取单元51,用于当监听到视频播放器在运行过程中发生异常时,获取捕捉到的异常信息。第一确定单元53,用于根据异常信息确定异常的类型,异常的类型至少包括:视频播放器的底层异常和/或上层异常。调用单元55,用于根据异常的类型调用视频播放器内部对应的回调函数。处理单元57,用于使用回调函数处理异常信息,生成异常监测结果。
本申请上述实施例二公开的方案中,如果要获取到视频播放器发生的异常,可以首先启动视频播放器,然后在当监听到视频播放器在运行过程中发生异常时,获取捕捉到的异常信息,接着,根据异常信息确定异常的类型,异常的类型至少包括:视频播放器的底层异常和/或上层异常,接着,根据异常的类型调用视频播放器内部对应的回调函数,最后,使用回调函数处理异常信息,生成异常监测结果。容易注意到,本实施例的方案可以根据异常的不同类型调用播放器内部不同的回调函数,由每个回调函数对其对应的每个异常信息进行处理。因此,通过本发明实施例所提供的方案,只需要在视频播放器中预设对应的不同类型回调函数则可以实现对不同类型的异常的处理,客服了现有的视频播放器不能获取所有异常的缺陷,提高了视频播放器的异常获取准确性,而且,视频播放器异常的获取的过程中,利用终端设备的操作系统中现有的异常捕捉方案来获取异常,无需在视频播放器内部设置异常捕捉算法,可以节省开发资源。由此,本申请提供的上述实施例一的方案解决了现有技术视频客户端无法监测到所有类型的异常,导致异常监测结果不准确的技术问题。
作为一种可选的实施方式,如图6所示,上述装置还可以包括:设定单元59,用于在系统的信号机制捕捉接口中设定用于处理底层异常的回调函数,和/或在系统的未捕捉异常监听接口中设定用于处理上层异常的回调函数。
作为一种可选的实施方式,如图7所示,上述装置还可以包括:第一传输单元61以及第二传输单元63。
其中,第一传输单元61,用于在监听到的异常的类型为底层异常的情况下,通过信号机制捕捉接口将监听到的底层异常传输至视频播放器。第二传输单元63,用于在监听到的异常的类型为上层异常的情况下,通过未捕捉异常监听接口将监听到的上层异常传输至视频播放器。
作为一种可选的实施方式,如图8所示,其中,处理单元57包括:还原模块571,第一获取模块572以及第一生成模块573。
其中,还原模块571,用于根据系统中预存的函数符号表对异常信息进行还原,得到底层异常的堆栈信息;第一获取模块572,用于获取与视频播放器相关联的参数信息,参数信息包括如下任意一个或多个信息:视频播放器当前播放的视频信息、用于运行视频播放器的终端设备的信息;第一生成模块573,用于根据堆栈信息和参数信息生成异常监测结果。
作为一种可选的实施方式,处理单元57还包括:抽取模块574,第二获取模块575,第二生成模块576。
抽取模块574,用于从异常信息中抽取到上层异常的堆栈信息;第二获取模块575,用于获取与视频播放器相关联的参数信息,参数信息包括如下任意一个或多个信息:视频播放器当前播放的视频信息、用于运行视频播放器的终端设备的信息;第二生成模块576,用于根据堆栈信息和参数信息生成异常监测结果。
作为一种可选的实施方式,如图9所示,上述装置还可以包括:第一上报单元65,用于将异常监测结果上报至对应的服务器。
作为一种可选的实施方式,如图10所示,上述装置还包括:第一生成单元67,第二生成单元69,第二获取单元71,第三生成单元73,第二上报单元75。
其中,第一生成单元67,用于在检测到发生播放错误的情况下,生成错误信息;第二生成单元69,用于处理错误信息,生成播放错误参数,其中,播放错误参数用于表征发生播放错误的原因因素;第二获取单元71,用于获取与播放视频相关联的播放参数信息,播放参数信息包括如下任意一个或多个信息:开始播放的视频的视频信息、用于运行视频播放器的终端设备的信息;第三生成单元73,用于根据播放错误参数和播放参数信息生成播放异常监测结果;第二上报单元75,用于将播放异常监测结果上报至对应的服务器。
作为一种可选的实施方式,如图11所示,上述装置还包括:第一上传单元77,显示单元79。
其中,第一上传单元77,用于将播放错误参数上传至视频播放器的播放界面;显示单元79,用于根据播放错误参数的不同,显示不同的建议信息。
作为一种可选的实施方式,如图12所示,上述装置还包括:第二确定单元81,第二上传单元83。
其中,第二确定单元81,用于根据播放异常监测结果确定待上报的错误数据;第二上传单元83,用于通过JNI层上传错误数据。
作为一种可选的实施方式,如图13所示,上述装置还包括:下发单元85,播放单元87,第三确定单元89。
其中,下发单元85,用于通过JNI层下发播放指令,并初始化视频播放引擎和视频解码器;播放单元87,用于在初始化成功之后,根据播放指令在视频播放器中播放视频;第三确定单元89,用于视频播放器如果检测到播放错误信息的情况下,确定视频播放器发生播放错误,其中,播放错误信息至少包括:由视频播放引擎和/或视频解码器产生的错误数据。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
实施例3
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述获取视频播放器异常的方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S11,当监听到视频播放器在运行过程中发生异常时,获取捕捉到的异常信息;
S12,根据异常信息确定异常的类型,异常的类型至少包括:视频播放器的底层异常和/或上层异常;
S13,根据异常的类型调用视频播放器内部对应的回调函数;
S14,使用回调函数处理异常信息,生成异常监测结果。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在获取捕捉到的异常信息之前,方法还包括:在系统的信号机制捕捉接口中设定用于处理底层异常的回调函数,和/或在系统的未捕捉异常监听接口中设定用于处理上层异常的回调函数。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在根据异常信息确定异常的类型之后,方法还包括:在监听到的异常的类型为底层异常的情况下,通过信号机制捕捉接口将监听到的底层异常传输至视频播放器;在监听到的异常的类型为上层异常的情况下,通过未捕捉异常监听接口将监听到的上层异常传输至视频播放器。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在异常的类型为底层异常的情况下,其中,使用回调函数处理异常信息,生成异常监测结果包括:根据系统中预存的函数符号表对异常信息进行还原,得到底层异常的堆栈信息;获取与视频播放器相关联的参数信息,参数信息包括如下任意一个或多个信息:视频播放器当前播放的视频信息、用于运行视频播放器的终端设备的信息;根据堆栈信息和参数信息生成异常监测结果。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在异常的类型为上层异常的情况下,其中,使用回调函数处理异常信息,生成异常监测结果包括:从异常信息中抽取到上层异常的堆栈信息;获取与视频播放器相关联的参数信息,参数信息包括如下任意一个或多个信息:视频播放器当前播放的视频信息、用于运行视频播放器的终端设备的信息;根据堆栈信息和参数信息生成异常监测结果。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在使用回调函数处理异常信息,生成异常监测结果之后,方法还包括:将异常监测结果上报至对应的服务器。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:视频播放器在运行过程中接收到播放指令时启动播放视频,其中,在启动播放视频之后,方法还包括:在检测到发生播放错误的情况下,视频播放器生成错误信息;视频播放器处理错误信息,生成播放错误参数,其中,播放错误参数用于表征发生播放错误的原因因素;获取与播放视频相关联的播放参数信息,播放参数信息包括如下任意一个或多个信息:开始播放的视频的视频信息、用于运行视频播放器的终端设备的信息;根据播放错误参数和播放参数信息生成播放异常监测结果;将播放异常监测结果上报至对应的服务器。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在生成播放异常监测结果之后,方法还包括:视频播放器将播放错误参数上传至视频播放器的播放界面;播放界面根据播放错误参数的不同,显示不同的建议信息。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在视频播放器将播放错误参数上传至视频播放器的播放界面之前,方法还包括:视频播放器根据播放异常监测结果确定待上报的错误数据;通过JNI层上传错误数据。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在视频播放器生成错误信息之前,方法还包括:通过JNI层下发播放指令,并初始化视频播放引擎和视频解码器;在初始化成功之后,根据播放指令在视频播放器中播放视频;视频播放器如果检测到播放错误信息的情况下,确定视频播放器发生播放错误,其中,播放错误信息至少包括:由视频播放引擎和/或视频解码器产生的错误数据。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
实施例4
本发明的实施例还提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。
可选地,图14是根据本发明实施例的一种计算机终端的结构框图。如图14所示,该计算机终端A可以包括:一个或多个(图中仅示出一个)处理器91、存储器93、以及传输装置95。
其中,存储器93可用于存储软件程序以及模块,如本发明实施例中的获取视频播放器异常的方法和装置对应的程序指令/模块,处理器91通过运行存储在存储器93内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的显示图标的方法。存储器93可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器93可进一步包括相对于处理器91远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端A。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置95用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置95包括一个网络适配器(NetworkInterfaceController,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置95为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器93用于存储预设动作条件和预设权限用户的信息、以及应用程序。
处理器91可以通过传输装置调用存储器93存储的信息及应用程序,以执行下述步骤:
可选的,上述处理器91还可以执行如下步骤的程序代码:
S11,当监听到视频播放器在运行过程中发生异常时,获取捕捉到的异常信息;
S12,根据异常信息确定异常的类型,异常的类型至少包括:视频播放器的底层异常和/或上层异常;
S13,根据异常的类型调用视频播放器内部对应的回调函数;
S14,使用回调函数处理异常信息,生成异常监测结果。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (20)
1.一种获取视频播放器异常的方法,其特征在于,包括:
当监听到视频播放器在运行过程中发生异常时,获取捕捉到的异常信息;
根据所述异常信息确定所述异常的类型,所述异常的类型至少包括:所述视频播放器的底层异常和/或上层异常;
根据所述异常的类型调用所述视频播放器内部对应的回调函数;
使用所述回调函数处理所述异常信息,生成异常监测结果。
2.根据权利要求1所述的方法,其特征在于,在获取捕捉到的异常信息之前,所述方法还包括:在系统的信号机制捕捉接口中设定用于处理所述底层异常的回调函数,和/或在所述系统的未捕捉异常监听接口中设定用于处理所述上层异常的回调函数。
3.根据权利要求2所述的方法,其特征在于,其中,在根据所述异常信息确定所述异常的类型之后,所述方法还包括:
在监听到的所述异常的类型为所述底层异常的情况下,通过所述信号机制捕捉接口将监听到的所述底层异常传输至所述视频播放器;
在监听到的所述异常的类型为所述上层异常的情况下,通过所述未捕捉异常监听接口将监听到的所述上层异常传输至所述视频播放器。
4.根据权利要求3所述的方法,其特征在于,在所述异常的类型为所述底层异常的情况下,其中,使用所述回调函数处理所述异常信息,生成异常监测结果包括:
根据系统中预存的函数符号表对所述异常信息进行还原,得到所述底层异常的堆栈信息;
获取与所述视频播放器相关联的参数信息,所述参数信息包括如下任意一个或多个信息:所述视频播放器当前播放的视频信息、用于运行所述视频播放器的终端设备的信息;
根据所述堆栈信息和所述参数信息生成所述异常监测结果。
5.根据权利要求3所述的方法,其特征在于,在所述异常的类型为所述上层异常的情况下,其中,使用所述回调函数处理所述异常信息,生成异常监测结果包括:
从所述异常信息中抽取到所述上层异常的堆栈信息;
获取与所述视频播放器相关联的参数信息,所述参数信息包括如下任意一个或多个信息:所述视频播放器当前播放的视频信息、用于运行所述视频播放器的终端设备的信息;
根据所述堆栈信息和所述参数信息生成所述异常监测结果。
6.根据权利要求1所述的方法,其特征在于,在使用所述回调函数处理所述异常信息,生成异常监测结果之后,所述方法还包括:将所述异常监测结果上报至对应的服务器。
7.根据权利要求1至6中任意一项所述的方法,所述视频播放器在运行过程中接收到播放指令时启动播放视频,其中,在启动播放视频之后,所述方法还包括:
在检测到发生播放错误的情况下,所述视频播放器生成错误信息;
所述视频播放器处理所述错误信息,生成播放错误参数,其中,所述播放错误参数用于表征发生所述播放错误的原因因素;
获取与所述播放视频相关联的播放参数信息,所述播放参数信息包括如下任意一个或多个信息:开始播放的视频的视频信息、用于运行所述视频播放器的终端设备的信息;
根据所述播放错误参数和所述播放参数信息生成播放异常监测结果;
将所述播放异常监测结果上报至对应的服务器。
8.根据权利要求7所述的方法,在生成播放异常监测结果之后,所述方法还包括:
所述视频播放器将所述播放错误参数上传至所述视频播放器的播放界面;
所述播放界面根据所述播放错误参数的不同,显示不同的建议信息。
9.根据权利要求8所述的方法,在所述视频播放器将所述播放错误参数上传至所述视频播放器的播放界面之前,所述方法还包括:
所述视频播放器根据所述播放异常监测结果确定待上报的错误数据;
通过JNI层上传所述错误数据。
10.根据权利要求7所述的方法,在所述视频播放器生成错误信息之前,所述方法还包括:
通过JNI层下发所述播放指令,并初始化视频播放引擎和视频解码器;
在初始化成功之后,根据所述播放指令在所述视频播放器中播放视频;
所述视频播放器如果检测到播放错误信息的情况下,确定所述视频播放器发生所述播放错误,其中,所述播放错误信息至少包括:由所述视频播放引擎和/或所述视频解码器产生的错误数据。
11.一种获取视频播放器异常的装置,其特征在于,包括:
第一获取单元,用于当监听到视频播放器在运行过程中发生异常时,获取捕捉到的异常信息;
第一确定单元,用于根据所述异常信息确定所述异常的类型,所述异常的类型至少包括:所述视频播放器的底层异常和/或上层异常;
调用单元,用于根据所述异常的类型调用所述视频播放器内部对应的回调函数;
处理单元,用于使用所述回调函数处理所述异常信息,生成异常监测结果。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:设定单元,用于在系统的信号机制捕捉接口中设定用于处理所述底层异常的回调函数,和/或在所述系统的未捕捉异常监听接口中设定用于处理所述上层异常的回调函数。
13.根据权利要求12所述的装置,其特征在于,所述装置还包括:
第一传输单元,用于在监听到的所述异常的类型为所述底层异常的情况下,通过所述信号机制捕捉接口将监听到的所述底层异常传输至所述视频播放器;
第二传输单元,用于在监听到的所述异常的类型为所述上层异常的情况下,通过所述未捕捉异常监听接口将监听到的所述上层异常传输至所述视频播放器。
14.根据权利要求13所述的装置,其特征在于,其中,所述处理单元包括:
还原模块,用于根据系统中预存的函数符号表对所述异常信息进行还原,得到所述底层异常的堆栈信息;
第一获取模块,用于获取与所述视频播放器相关联的参数信息,所述参数信息包括如下任意一个或多个信息:所述视频播放器当前播放的视频信息、用于运行所述视频播放器的终端设备的信息;
第一生成模块,用于根据所述堆栈信息和所述参数信息生成所述异常监测结果。
15.根据权利要求13所述的装置,其特征在于,所述处理单元还包括:
抽取模块,用于从所述异常信息中抽取到所述上层异常的堆栈信息;
第二获取模块,用于获取与所述视频播放器相关联的参数信息,所述参数信息包括如下任意一个或多个信息:所述视频播放器当前播放的视频信息、用于运行所述视频播放器的终端设备的信息;
第二生成模块,用于根据所述堆栈信息和所述参数信息生成所述异常监测结果。
16.根据权利要求11所述的装置,其特征在于,所述装置还包括:第一上报单元,用于将所述异常监测结果上报至对应的服务器。
17.根据权利要求11至16中任意一项所述的装置,所述装置还包括:
第一生成单元,用于在检测到发生播放错误的情况下,生成错误信息;
第二生成单元,用于处理所述错误信息,生成播放错误参数,其中,所述播放错误参数用于表征发生所述播放错误的原因因素;
第二获取单元,用于获取与播放视频相关联的播放参数信息,所述播放参数信息包括如下任意一个或多个信息:开始播放的视频的视频信息、用于运行所述视频播放器的终端设备的信息;
第三生成单元,用于根据所述播放错误参数和所述播放参数信息生成播放异常监测结果;
第二上报单元,用于将所述播放异常监测结果上报至对应的服务器。
18.根据权利要求17所述的装置,所述装置还包括:
第一上传单元,用于将所述播放错误参数上传至所述视频播放器的播放界面;
显示单元,用于根据所述播放错误参数的不同,显示不同的建议信息。
19.根据权利要求18所述的装置,所述装置还包括:
第二确定单元,用于根据所述播放异常监测结果确定待上报的错误数据;
第二上传单元,用于通过JNI层上传所述错误数据。
20.根据权利要求17所述的装置,所述装置还包括:
下发单元,用于通过JNI层下发播放指令,并初始化视频播放引擎和视频解码器;
播放单元,用于在初始化成功之后,根据所述播放指令在所述视频播放器中播放视频;
第三确定单元,用于所述视频播放器如果检测到播放错误信息的情况下,确定所述视频播放器发生所述播放错误,其中,所述播放错误信息至少包括:由所述视频播放引擎和/或所述视频解码器产生的错误数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510828121.XA CN105472417B (zh) | 2015-11-24 | 2015-11-24 | 获取视频播放器异常的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510828121.XA CN105472417B (zh) | 2015-11-24 | 2015-11-24 | 获取视频播放器异常的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105472417A true CN105472417A (zh) | 2016-04-06 |
CN105472417B CN105472417B (zh) | 2020-02-07 |
Family
ID=55609631
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510828121.XA Active CN105472417B (zh) | 2015-11-24 | 2015-11-24 | 获取视频播放器异常的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105472417B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106155828A (zh) * | 2016-07-13 | 2016-11-23 | 微鲸科技有限公司 | 用于播放应用程序资源控制方法和设备 |
CN106792163A (zh) * | 2016-11-25 | 2017-05-31 | 上海乐欢软件有限公司 | 一种视频播放状态的检测方法及装置 |
CN107358071A (zh) * | 2017-06-07 | 2017-11-17 | 武汉斗鱼网络科技有限公司 | 防止Flash应用程序中函数非法调用的方法及装置 |
CN110971890A (zh) * | 2018-09-30 | 2020-04-07 | 青岛海尔多媒体有限公司 | 电视生产测试的方法、装置及计算机存储介质 |
CN111354383A (zh) * | 2018-12-20 | 2020-06-30 | 深圳市优必选科技有限公司 | 一种音频缺陷定位方法、装置及终端设备 |
CN112114987A (zh) * | 2019-06-20 | 2020-12-22 | 腾讯科技(深圳)有限公司 | 运行环境的异常检测方法、装置、智能终端及存储介质 |
CN113411648A (zh) * | 2021-06-16 | 2021-09-17 | 上海高顿教育科技有限公司 | 一种适配多种播放器的控制方法和装置 |
CN114189700A (zh) * | 2021-11-23 | 2022-03-15 | 广州博冠信息科技有限公司 | 直播卡顿提示方法、装置、计算机设备和存储介质 |
CN114598930A (zh) * | 2022-03-02 | 2022-06-07 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种测试方法、装置、电子设备及计算机存储介质 |
CN114666577A (zh) * | 2022-05-24 | 2022-06-24 | 杭州海康威视数字技术股份有限公司 | 一种基于视频行为距离的设备异常检测方法和装置 |
CN114827636A (zh) * | 2021-01-18 | 2022-07-29 | 武汉斗鱼网络科技有限公司 | 一种视频播放异常的诊断方法及相关装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102957953A (zh) * | 2011-08-26 | 2013-03-06 | 中兴通讯股份有限公司 | 手机电视播放错误的处理方法、服务器及手机电视终端 |
CN103731729A (zh) * | 2013-11-26 | 2014-04-16 | 乐视致新电子科技(天津)有限公司 | 智能电视媒体播放器及其异常处理方法、智能电视 |
CN104156275A (zh) * | 2014-06-30 | 2014-11-19 | 青岛海信移动通信技术股份有限公司 | 一种安卓Android平台异常处理的方法和装置 |
CN104503770A (zh) * | 2015-01-12 | 2015-04-08 | 北京国双科技有限公司 | 异常信息的处理方法及装置 |
CN104503918A (zh) * | 2015-01-12 | 2015-04-08 | 北京国双科技有限公司 | 异常信息的处理方法及装置 |
CN104809030A (zh) * | 2015-05-19 | 2015-07-29 | 上海斐讯数据通信技术有限公司 | 一种基于Android的异常处理系统及处理方法 |
-
2015
- 2015-11-24 CN CN201510828121.XA patent/CN105472417B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102957953A (zh) * | 2011-08-26 | 2013-03-06 | 中兴通讯股份有限公司 | 手机电视播放错误的处理方法、服务器及手机电视终端 |
CN103731729A (zh) * | 2013-11-26 | 2014-04-16 | 乐视致新电子科技(天津)有限公司 | 智能电视媒体播放器及其异常处理方法、智能电视 |
CN104156275A (zh) * | 2014-06-30 | 2014-11-19 | 青岛海信移动通信技术股份有限公司 | 一种安卓Android平台异常处理的方法和装置 |
CN104503770A (zh) * | 2015-01-12 | 2015-04-08 | 北京国双科技有限公司 | 异常信息的处理方法及装置 |
CN104503918A (zh) * | 2015-01-12 | 2015-04-08 | 北京国双科技有限公司 | 异常信息的处理方法及装置 |
CN104809030A (zh) * | 2015-05-19 | 2015-07-29 | 上海斐讯数据通信技术有限公司 | 一种基于Android的异常处理系统及处理方法 |
Non-Patent Citations (2)
Title |
---|
OAYX: "android和iOS平台的崩溃捕获和收集", 《HTTPS://WWW.CNBLOGS.COM/LANCIDIE/ARCHIVE/2013/04/13/3019349.HTML》 * |
叶辉: "安卓应用外部数据输入Fuzzing技术研究", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106155828A (zh) * | 2016-07-13 | 2016-11-23 | 微鲸科技有限公司 | 用于播放应用程序资源控制方法和设备 |
CN106792163A (zh) * | 2016-11-25 | 2017-05-31 | 上海乐欢软件有限公司 | 一种视频播放状态的检测方法及装置 |
CN107358071A (zh) * | 2017-06-07 | 2017-11-17 | 武汉斗鱼网络科技有限公司 | 防止Flash应用程序中函数非法调用的方法及装置 |
CN110971890B (zh) * | 2018-09-30 | 2022-04-19 | 青岛海尔多媒体有限公司 | 电视生产测试的方法、装置及计算机存储介质 |
CN110971890A (zh) * | 2018-09-30 | 2020-04-07 | 青岛海尔多媒体有限公司 | 电视生产测试的方法、装置及计算机存储介质 |
CN111354383A (zh) * | 2018-12-20 | 2020-06-30 | 深圳市优必选科技有限公司 | 一种音频缺陷定位方法、装置及终端设备 |
CN111354383B (zh) * | 2018-12-20 | 2021-07-27 | 深圳市优必选科技有限公司 | 一种音频缺陷定位方法、装置及终端设备 |
CN112114987A (zh) * | 2019-06-20 | 2020-12-22 | 腾讯科技(深圳)有限公司 | 运行环境的异常检测方法、装置、智能终端及存储介质 |
CN112114987B (zh) * | 2019-06-20 | 2024-04-09 | 腾讯科技(深圳)有限公司 | 运行环境的异常检测方法、装置、智能终端及存储介质 |
CN114827636A (zh) * | 2021-01-18 | 2022-07-29 | 武汉斗鱼网络科技有限公司 | 一种视频播放异常的诊断方法及相关装置 |
CN113411648A (zh) * | 2021-06-16 | 2021-09-17 | 上海高顿教育科技有限公司 | 一种适配多种播放器的控制方法和装置 |
CN114189700A (zh) * | 2021-11-23 | 2022-03-15 | 广州博冠信息科技有限公司 | 直播卡顿提示方法、装置、计算机设备和存储介质 |
CN114598930A (zh) * | 2022-03-02 | 2022-06-07 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种测试方法、装置、电子设备及计算机存储介质 |
CN114666577A (zh) * | 2022-05-24 | 2022-06-24 | 杭州海康威视数字技术股份有限公司 | 一种基于视频行为距离的设备异常检测方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105472417B (zh) | 2020-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105472417A (zh) | 获取视频播放器异常的方法及装置 | |
CN107423194B (zh) | 前端异常告警处理方法、装置及系统 | |
CN105376335B (zh) | 一种采集数据上传方法和装置 | |
AU2011340789B2 (en) | End-user performance monitoring for mobile applications | |
CN108235081B (zh) | 多屏互动方法及装置 | |
US10592377B2 (en) | Website performance tracking | |
CN109391843B (zh) | 在线视频倍速播放方法、装置、介质及智能终端 | |
WO2014138097A1 (en) | Mobile device monitoring and testing | |
CN105407407A (zh) | 视频的播放方法和装置 | |
CN107480036A (zh) | iOS移动应用的自动测试方法、装置、存储介质及终端 | |
CN103268183A (zh) | 信息上报处理方法和装置 | |
CN108124042A (zh) | 器件故障检测方法、装置及移动终端 | |
CN113242443B (zh) | 数据流传输的异常检测方法及其装置 | |
CN111930703A (zh) | 日志文件自动抓取方法、装置和计算机设备 | |
CN103699414A (zh) | 一种软件处理方法及装置 | |
CN110347548A (zh) | 一种异常检测方法及装置、存储介质、电子设备 | |
CN103618786A (zh) | 一种播放错误处理方法及服务器 | |
CN108365982A (zh) | 设备异常调试方法、装置、设备和存储介质 | |
CN105515909A (zh) | 一种数据采集测试方法和装置 | |
CN108039956A (zh) | 应用监控方法、系统和计算机可读存储介质 | |
CN112615909A (zh) | 在级联存储服务器集群中存储数据的方法及相关设备 | |
KR102057339B1 (ko) | 간편답장을 지원하는 어플리케이션 실행 단말 및 방법 | |
CN106557398A (zh) | 信息上报方法和装置 | |
CN107911717A (zh) | 屏幕控制方法、装置及系统 | |
CN113923443A (zh) | 一种网络录像机测试方法、装置及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221129 Address after: 1402, Floor 14, Block A, Haina Baichuan Headquarters Building, No. 6, Baoxing Road, Haibin Community, Xin'an Street, Bao'an District, Shenzhen, Guangdong 518100 Patentee after: Shenzhen Yayue Technology Co.,Ltd. Address before: 2, 518000, East 403 room, SEG science and Technology Park, Zhenxing Road, Shenzhen, Guangdong, Futian District Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd. |
|
TR01 | Transfer of patent right |