播放组件兼容性检测方法、装置、计算机设备和存储介质
技术领域
本申请涉及人工智能
技术领域
,特别是涉及一种播放组件兼容性检测方法、装置、计算机设备和存储介质。背景技术
播放组件作为智能设备中的重要组成部分,是一种用来播放多媒体的播放软件。系统一般在出厂时会配置系统播放组件,例如Android系统中的MediaPlayer,即为Android系统自带的播放器。系统播放组件作为系统的基础组件,需要满足对各类应用程序中的视频进行播放的功能,因此,需要对播放组件的兼容性进行检测。
但传统方法中,对于播放组件的检测基本依赖于用户在实际操作过程后的反馈信息,缺乏动态的检测技术,导致播放组件兼容性测试的效率低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高测试效率的播放组件兼容性检测方法、装置、计算机设备和存储介质。
一种播放组件兼容性检测方法,方法包括:
将播放组件加载至检测进程,并创建离屏渲染环境,检测进程为应用程序切换至后台时启动的进程;
通过播放组件将应用程序对应的目标视频解码至离屏渲染环境;
从离屏渲染环境中提取待检测视频帧,将待检测视频帧输入预设的图像检测模型,得到视频帧检测结果,其中图像检测模型基于包括异常图像的图像集训练得到;
根据视频帧检测结果,确定播放组件兼容性检测结果。
一种播放组件兼容性检测装置,装置包括:
加载模块,用于将播放组件加载至检测进程,并创建离屏渲染环境,检测进程为应用程序切换至后台时启动的进程;
解码模块,用于通过播放组件将应用程序对应的目标视频解码至离屏渲染环境;
检测模块,用于从离屏渲染环境中提取待检测视频帧,将待检测视频帧输入预设的图像检测模型,得到视频帧检测结果,其中图像检测模型基于包括异常图像的图像集训练得到;
兼容性确定模块,用于根据视频帧检测结果,确定播放组件兼容性检测结果。
一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:
将播放组件加载至检测进程,并创建离屏渲染环境,检测进程为应用程序切换至后台时启动的进程;
通过播放组件将应用程序对应的目标视频解码至离屏渲染环境;
从离屏渲染环境中提取待检测视频帧,将待检测视频帧输入预设的图像检测模型,得到视频帧检测结果,其中图像检测模型基于包括异常图像的图像集训练得到;
根据视频帧检测结果,确定播放组件兼容性检测结果。
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
将播放组件加载至检测进程,并创建离屏渲染环境,检测进程为应用程序切换至后台时启动的进程;
通过播放组件将应用程序对应的目标视频解码至离屏渲染环境;
从离屏渲染环境中提取待检测视频帧,将待检测视频帧输入预设的图像检测模型,得到视频帧检测结果,其中图像检测模型基于包括异常图像的图像集训练得到;
根据视频帧检测结果,确定播放组件兼容性检测结果。
上述播放组件兼容性检测方法、装置、计算机设备和存储介质,基于应用程序切换至后台时启动的检测进程,将播放组件加载至检测进程,以后台进程的形式加载并启动播放组件,通过创建离屏渲染环境,通过播放组件将应用程序对应的目标视频解码至离屏渲染环境,便于实现播放组件在用户无感知的情况下进行视频解码,由于图像检测模型是基于包括异常图像的图像集训练得到的,从离屏渲染环境的解码数据中提取待检测视频帧,将待检测视频帧输入预设的图像检测模型,可以判断视频帧是否存在异常,从而基于视频帧检测结果,得到播放组件兼容性检测结果,实现了在应用程序的后台运行过程中的播放组件兼容性检测,检测过程不依赖用户的实际操作和反馈,提高检测效率。
附图说明
图1为一个实施例中播放组件兼容性检测方法的应用环境图;
图2为一个实施例中播放组件兼容性检测方法的流程示意图;
图3为另一个实施例中播放组件兼容性检测方法的流程示意图;
图4为再一个实施例中播放组件兼容性检测方法的流程示意图;
图5为还一个实施例中播放组件兼容性检测方法的流程示意图;
图6为又一个实施例中播放组件兼容性检测方法的流程示意图;
图7为另一个实施例中播放组件兼容性检测方法的流程示意图;
图8为一个实施例中播放组件兼容性检测方法中主进程与子进程的关系示意图;
图9为又一个实施例中播放组件兼容性检测方法的流程示意图;
图10为一个实施例中播放组件兼容性检测方法的流程框图;
图11为一个实施例中播放组件兼容性检测装置的结构框图;
图12为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的播放组件兼容性检测方法,可以应用于如图1所示的应用环境中。终端102与服务器104通过网络进行通信,其中,终端102将播放组件加载至检测进程,并创建离屏渲染环境,检测进程为应用程序切换至后台时启动的进程,通过播放组件将应用程序对应的目标视频解码至离屏渲染环境,从离屏渲染环境中提取待检测视频帧,将待检测视频帧输入预设的图像检测模型,得到视频帧检测结果,其中图像检测模型由服务器104基于包括异常图像的图像集训练得到并发送至终端102,终端102根据视频帧检测结果,确定播放组件兼容性检测结果。
在其他实施例中,终端102可以将待检测视频帧发送至服务器104,由服务器104将待检测视频帧输入预设的图像检测模型,得到视频帧检测结果,根据视频帧检测结果,确定播放组件兼容性检测结果。得到的播放组件兼容性检测结果还可以由服务器104反馈至终端102。
其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,实施例提供的方案涉及人工智能的计算机视觉技术领域,计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、OCR(Optical Character Recognition,光学字符识别)、视频处理、视频语义理解等技术。具体通过如下实施例进行说明:
在一个实施例中,如图2所示,提供了一种播放组件兼容性检测方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤202至步骤208。
步骤202,将播放组件加载至检测进程,并创建离屏渲染环境,检测进程为应用程序切换至后台时启动的进程。
播放组件是指用于对多媒体数据进行解码以播放多媒体数据的待测试对象,在实施例中,该播放组件可以是系统播放组件,也可以是通过第三方下载的播放组件。比如,Android系统自带的播放器MediaPlayer,再比如,从应用商店或是官方网站下载的QQPlayer、Adobe Flash Player等。
检测进程是指独立于应用程序的主进程之外的子程序。当应用程序的主进程进入后台运行状态时,启动该子进程以进行兼容性检测。
在检测进程启动时,可以通过拉起播放组件的方式将播放组件加载至检测进程。在加载播放组件的过程中,通过创建离屏渲染环境确定播放组件解码后的视频帧的输出环境。
离屏渲染是一种屏幕外的渲染方式,即渲染的结果不会直接呈现到当前屏幕上。在正常的视频播放过程中,一般是通过当前屏幕渲染的方式,将视频帧依次渲染至当前屏幕,此时,GPU(Graphics Processing Unit,图形处理器)的渲染操作是在当前用于显示的屏幕缓冲区进行,而离屏渲染过程中,GPU会在当前屏幕缓冲区以外开辟一个缓冲区进行渲染操作,不会渲染至当前屏幕。
应用程序是指需要使用播放组件的进行多媒体数据播放的应用程序。应用程序可以是用户根据需要自行配置的用于进行播放组件兼容性检测的对象,也可以是基于终端默认策略自行确定的对象,比如默认各用户在新安装应用程序都需要作为检测对象对播放组件的兼容性进行检测。
后台运行是指操作系统不在前端显示界面显示运行的进程,后台运行是相对桌面等前端运行而言的,桌面执行时使用者可以直接感知,而后台是使用者看不到的。应用程序切换到后台是将桌面上能直接看到的运行程序切换至不能直接看到的状态的过程。比如,把在桌面上执行的程序通过最小化或隐藏操作,使桌面不再出现该程序页面。再比如,通过打开其他应用程序覆盖当前桌面上的显示内容,使桌面不再出现该程序页面。
在一个实施例中,终端对各应用程序的运行状态进行检测,当检测到其中一个应用程序状态切换至后台运行状态且接收到针对该应用程序的检测命令时,启动检测进程。其中,针对该应用程序的检测命令可以是基于后台基于用户操作生成的也可以是触发终端默认策略(如该应用程序新安装时)生成的。通过在不同的条件下生成检测命令,可以针对不同应用程序,实现对播放组件的全面兼容性检测。
步骤204,通过播放组件将应用程序对应的目标视频解码至离屏渲染环境。
应用程序对应的目标视频是指用于进行兼容性检测的视频,其中,目标视频可以根据视频文件地址或者指定的视频文件得到。
解码是一种用特定方法把数码还原成它所代表的内容或将电脉冲信号、光信号、无线电波等转换成它所代表的信息、数据等的过程。解码是受传者将接受到的符号或代码还原为信息的过程,与编码过程相对应。播放组件通过对目标视频进行解码,可以将视频数据转换成图像格式的连续视频帧,通过在界面上依次渲染该连续视频帧即可实现视频的播放。
在检测进程中,通过启动播放组件对目标视频进行解码得到视频帧,并将得到的视频帧渲染至离屏渲染环境,避免在当前屏幕中直接渲染进行播放,实现在用户无感知情况下的视频解码和离屏播放。
步骤206,从离屏渲染环境中提取待检测视频帧,将待检测视频帧输入预设的图像检测模型,得到视频帧检测结果。
播放组件将目标视频解码至离屏渲染环境,待检测视频帧可以是离屏渲染环境中的全部视频帧,也可以是离屏渲染环境中的部分视频帧。通过将全部视频帧作为待检测视频帧,可以实现对目标视频的所有视频帧进行全面检测,避免异常画面的遗漏。但由于目标视频对应的视频帧的数量是庞大的,可以通过对视频帧进行筛选,将部分视频帧作为待检测视频帧,以提高检测速度。在实施例中,筛选方式可以是随机筛选,也可以是按照设定的规则进行筛选,例如按设定比例筛选,按设定频率筛选等,其中,按设定比例筛选是指基于总的视频帧的数量,确定待筛选视频帧的数量,然后从总的视频帧中获取该数量的待测试视频帧。按设定频率筛选是指按照时间顺序,每隔N个视频帧筛选出一个视频帧作为待测试视频帧。
图像检测模型是指用于对待测试视频帧进行检测的神经网络模型。在实施例中,图像检测模型可以包括异常图像的图像集训练得到。
具体来说,后台搭建一个机器学习的训练服务,提供大量花屏、绿屏、黑屏等素材进行训练,得出图像检测模型。其中,花屏、绿屏、黑屏属于显示异常图像,花屏是指显示屏幕上显示与常色不同的条纹、斑点或色块、或有位置颠倒、错乱,屏幕抖动、扭曲等情况。绿屏指示显示屏幕上显示有局域或全部的绿色的条纹、斑点或色块的情况,黑屏是指显示屏幕上显示结果为全黑色。
图像检测模型的训练过程包括以下过程:将正常图像作为正样本,将花屏、绿屏、黑屏等异常图像作为负样本,对初始的图像检测模型进行训练;直至模型评估参数满足设定条件,得到可用于对待检测视频帧进行图像检测的图像检测模型。
在检测进程中,通过将待检测视频帧输入预设的图像检测模型,得到图像检测模型输出的视频帧检测结果。
步骤208,根据视频帧检测结果,确定播放组件兼容性检测结果。
视频帧检测结果包括存在花屏、绿屏、黑屏等异常情况的异常视频帧和不存在花屏、绿屏、黑屏等异常情况的正常视频帧两种情况。
当视频帧检测结果为存在异常视频帧时,得到播放组件对该应用程序不兼容的检测结果。当视频帧检测结果为不存在异常视频帧时,得到播放组件对该应用程序兼容的检测结果。
上述播放组件兼容性检测方法,基于应用程序切换至后台时启动的检测进程,将播放组件加载至检测进程,以后台进程的形式加载并启动播放组件,通过创建离屏渲染环境,通过播放组件将应用程序对应的目标视频解码至离屏渲染环境,便于实现播放组件在用户无感知的情况下进行视频解码,由于图像检测模型是基于包括异常图像的图像集训练得到的,从离屏渲染环境的解码数据中提取待检测视频帧,将待检测视频帧输入预设的图像检测模型,可以判断视频帧是否存在异常,从而基于视频帧检测结果,得到播放组件兼容性检测结果,实现了在应用程序的后台运行过程中的播放组件兼容性检测,检测过程不依赖用户的实际操作和反馈,提高检测效率,使得兼容性检测能够在用户无感知的情况下完成。
在一个实施例中,如图3所示,通过播放组件将应用程序对应的目标视频解码至离屏渲染环境即步骤204,包括步骤302至步骤304:
步骤302,启动播放组件,通过播放组件对目标视频进行解码,得到解码后的视频帧。
步骤304,根据配置于播放组件的图像渲染媒介,将视频帧渲染至离屏渲染环境。
图像渲染媒介是指用于表征视频帧渲染环境的媒介,在实施例中,以Android系统为例,图像渲染媒介可以是Surface,Surface是Android系统的一种图像缓冲区的一个句柄,作为播放组件和显示视图(View)交互的媒介,播放器可以通过Surface将播放器的解码后的图像绘制到视频(View)上。
图像渲染媒介与离屏渲染环境关联,播放组件对目标视频进行解码得到解码后的视频帧后,基于与离屏渲染环境关联、且配置于播放组件的图像渲染媒介,将视频帧渲染至离屏渲染环境,通过配置图像渲染媒介,实现了对视频帧按指定渲染环境的针对性输出,避免直接渲染至当前屏幕,以实现使用者无感解码与视频帧渲染。
在一个实施例中,如图4所示,根据配置于播放组件的图像渲染媒介,将视频帧渲染至离屏渲染环境之前,还包括步骤402至步骤406。
步骤402,根据离屏渲染环境,构建与离屏渲染环境对应的纹理标识。
步骤404,根据纹理标识表征的纹理对象,确定与纹理对象对应的图像渲染媒介。
步骤406,将图像渲染媒介配置至播放组件。
纹理标识即纹理ID(Identity document,身份证标识码),是基于离屏渲染环境随机生成的、用于表征与离屏渲染环境的关联关系的纹理映射信息。在实施例中,纹理标识可以通过EGL构建,其中,EGL是指针对Android扩展的OpenGL,相当于一个渲染API(Application Programming Interface,应用程序接口)。
基于纹理标识,生成纹理对象SurfaceTexture,通过SurfaceTexture可以生成一个图像渲染媒介Surface,把Surface设置给播放组件后,确定了播放组件的数据输出环境,以使得播放组件可以正常启动。
在实施例中,纹理标识可以基于离屏渲染环境随机生成,不同的纹理标识对应表征不同的纹理对象,不同的纹理对象所对应的图像渲染媒介也可以不同,但最终都是对应于同一个离屏渲染环境,图像渲染媒介配置至播放组件以实现播放组件与离屏渲染环境的关联。
在本实施例中,通过构建纹理标识,基于纹理标识表征的纹理对象,确定图像渲染媒介,能够基于不同的纹理标识构建出不同的图像渲染媒介,实现了播放组件与离屏渲染环境的关联路径的扩展,便于多个检测进程的同步执行。
在一个实施例中,从离屏渲染环境中提取待检测视频帧包括:按预设频率,对离屏渲染环境中的视频帧进行抽帧处理,得到待检测视频帧。
在实施例中,EGL可以不断读取图像渲染媒介Surface中的数据即可拿到播放组件解码后的视频帧。将该视频帧按照一定的频率进行抽帧处理输入至图像检测模型,比如每隔5帧送1帧。
通过按设定频率进行抽帧,既减少了待测试视频帧的数量,又能按照相同的间隔对待测试视频帧镜像筛选,确保了筛选结果在总的视频帧中的均匀分布,能够得到准确可靠的检测结果。
在一个实施例中,如图5所示,通过播放组件将应用程序对应的目标视频解码至离屏渲染环境即步骤204,包括步骤502步骤504。
步骤502,当离屏渲染环境的播放模式为静音播放时,启动播放组件对目标视频进行解码,将解码得到的视频帧渲染至离屏渲染环境。
步骤504,当离屏渲染环境的播放模式为非静音播放时,将播放模式调整为静音模式,启动播放组件对目标视频进行解码,将解码得到的视频帧渲染至离屏渲染环境。
离屏渲染环境的播放模式包括静音播放和非静音播放。播放模式是离屏渲染环境的配置数据,不会影响终端上其他进程的音效,具体来说,当离屏渲染环境的播放模式为静音播放时,在离屏渲染环境渲染解码得到的视频帧时,达到的是在无声渲染的效果,当当离屏渲染环境的播放模式为非静音播放时,在离屏渲染环境渲染解码得到的视频帧时,会基于终端的音效设置参数同步播放音频数据,如按终端当前设置的多媒体声音大小渲染视频帧,在离屏渲染环境进行视频播放。
通过获取离屏渲染环境的播放模式,当离屏渲染环境的播放模式为静音播放时,启动播放组件对目标视频进行解码,将解码得到的视频帧渲染至离屏渲染环境,当离屏渲染环境的播放模式为非静音播放时,将播放模式调整为静音模式,启动播放组件对目标视频进行解码,将解码得到的视频帧渲染至离屏渲染环境,实现离屏渲染环境中的无声播放,整个流程是采用离屏渲染和静音播放的方式,不会对终端的使用者的正常使用造成干扰。
在一个实施例中,如图6所示,将播放组件加载至检测进程,并创建离屏渲染环境即步骤202之前,还包括步骤602至步骤604。
步骤602,当监测到应用程序切换到后台时,记录后台运行时长。
步骤604,当后台运行时长达到预设时长时,启动检测进程。
当用户将应用程序切换到后台后,在一定的等待时间后启动检测进程,等待时间比如2秒等,后台运行时长达到预设时长时再启动检测进程,为检测进程提供一个稳定的启动环境,防止用户快速切换前后台导致检测进程频繁启动。
在一个实施例中,播放组件兼容性检测方法还包括:步骤702,当监测到应用程序从后台切换至前端时,结束检测进程。
在实施例中,如图8所示,应用程序的运行进程为主进程,检测程序为与主进程对应的兼容性检测子进程,子进程与主进程相互独立执行,子进程的启动与关闭依赖于主进程的运行状态以及子进程的执行结果。具体来说,当应用程序从前端运行切换至后台运行时,兼容性检测子进程启动,兼容性检测子进程有多种结束方式,第一种是提前结束兼容性检测子进程,如用户将应用程序从后台切换至前端,关闭子进程。第二种检测完成后结束兼容性检测子进程,比如该兼容性检测子进程执行特定时间,比如设定的检测时间为5秒,执行完后记录执行结果后检测完成,关闭子进程,再比如,检测结果中出现异常图像,则可以记录检测结果检测完成,关闭子进程。
通过监测到应用程序的运行状态,当应用程序从后台切换至前端结束检测进程,避免对使用者的正常使用造成影响。
在实施例中,当执行结束或图像异常时,可以得到播放组件对应用程序的兼容性检测结果,可以将该应用程序标记为已检测应用程序。当监测到应用程序从后台切换至前端时,结束检测进程之后还可以将该应用程序标记为待检测应用程序,当下一次监测到该应用程序的运行状态满足检测条件时,可以重新启动检测进程再次进行检测,直到得到播放组件对该应用程序的兼容性检测结果。通过将未完成检测的应用程序标记为待检测应用程序再次进行检测,以实现全面的兼容性检测。
在一个实施例中,如图9示,提供了一种播放组件兼容性检测方法,包括以下步骤902至步骤926。
步骤902,当监测到应用程序切换到后台时,记录后台运行时长。
步骤904,当后台运行时长达到预设时长时,启动检测进程。
步骤906,将播放组件加载至检测进程,并创建离屏渲染环境。
步骤908,当离屏渲染环境的播放模式为非静音播放时,将播放模式调整为静音模式。
步骤910,启动播放组件,通过播放组件对目标视频进行解码,得到解码后的视频帧。
步骤912,根据离屏渲染环境,构建与离屏渲染环境对应的纹理标识。
步骤914,根据纹理标识表征的纹理对象,确定与纹理对象对应的图像渲染媒介。
步骤916,将图像渲染媒介配置至播放组件。
步骤918,根据图像渲染媒介,将视频帧渲染至离屏渲染环境。
步骤920,按预设频率,对离屏渲染环境中的视频帧进行抽帧处理,得到待检测视频帧。
步骤922,将待检测视频帧输入预设的图像检测模型,得到视频帧检测结果。
步骤924,根据视频帧检测结果,确定播放组件兼容性检测结果。
步骤926,当监测到应用程序从后台切换至前端时,结束检测进程。
本申请还提供一种应用场景,该应用场景应用上述的播放组件兼容性检测方法。具体地,该播放组件兼容性检测方法应用于Android系统自带的播放器MediaPlayer的兼容性检测,在该应用场景的应用如下:
首先,需要在后台搭建一个机器学习的训练服务,提供大量花屏、绿屏、黑屏等图像素材进行对初始的图像检测模型进行训练,得到用于对视频帧进行检测的图像检测模型。然后,基于图像检测模型进行检测,检测过程包括两部分:
第一部分是构建一个独立进程的环境,第二部分是在独立进程中运行检测程序并获取结果。其中,在第一部分中,终端在获取到后台的检测命令时,记录针对APP进行检测的检测任务,对APP的运行状态进行监测,检测命令可以是来自于后台下发或者是终端每次新安装用户都需要检测的默认策略,检测命令包含需要检测的视频播放地址或者视频文件。当监测到用户将App切换到后台后,在一定的等待时间后,比如2秒,立即启动检测进程,防止用户快速切换前后台导致进程频繁启动。其中,检测进程有两种结束方式,第一种是用户将该App切换回前端后,另一种是该进程执行特定时间后,比如5秒,执行完后记录执行结果后即可销毁。
第二部分是在独立进程中运行检测程序并获取结果,该部分又分成加载播放器时和实际启动播放器时两个阶段。其中加载播放器阶段时,如图9所示,需要通过使用EGL来创建OpenGL离屏渲染的环境,同时通过glBindTexture的方式生成一个纹理ID,并以此纹理ID生成一个SurfaceTexture,然后使用这个SurfaceTexture生成一个Surface,然后把这个Surface配置至播放器,播放器即可使用这个Surface来将解码得到的视频帧渲染至离屏渲染环境。方法的实现不需要对系统播放器MediaPlayer有任何修改,对兼容性测试结果不会产生影响。
在实际启动播放器时,需要先设置静音,然后再启动播放器。播放器开始解码之后,解码后的数据会输出到配置给播放器的Surface中,EGL可以不断读取该Surface中的数据即可拿到播放器解码后的数据。然后将该数据按照一定的频率输送给推理模块,频率可以是每隔5帧送1帧,推理模块接受到数据后按照训练好的图像检测模型进行推理并得到推理结果,主要判定图像是否花屏、绿屏、黑屏等异常情况。如果发生了花屏、绿屏、黑屏等异常情况,则可以记录检测结果并停止整个程序;否则就按照特定时间运行一段时间后正常退出。如果有异常则该系统播放器有兼容性问题,否则则表示没有。整个流程是采用离屏渲染和静音播放的方式,所以不会对用户造成打扰。可以很好的解决大量使用系统播放器的场景,比如TV平台的播放。
应该理解的是,虽然上述实施例中涉及的各流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述实施例中涉及的各流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图11所示,提供了一种播放组件兼容性检测装置1100,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:加载模块1102、解码模块1104、检测模块1106和结果确定模块1108,其中:
加载模块1102,用于将播放组件加载至检测进程,并创建离屏渲染环境,检测进程为应用程序切换至后台时启动的进程。
解码模块1104,用于通过播放组件将应用程序对应的目标视频解码至离屏渲染环境。
检测模块1106,用于从离屏渲染环境中提取待检测视频帧,将待检测视频帧输入预设的图像检测模型,得到视频帧检测结果,其中图像检测模型基于包括异常图像的图像集训练得到。
兼容性确定模块1108,用于根据视频帧检测结果,确定播放组件兼容性检测结果。
在其中一个实施例中,解码模块还用于启动播放组件,通过播放组件对目标视频进行解码,得到解码后的视频帧;根据配置于播放组件的图像渲染媒介,将视频帧渲染至离屏渲染环境,其中,图像渲染媒介与离屏渲染环境关联。
在其中一个实施例中,播放组件兼容性检测装置还包括图像渲染媒介配置模块,用于根据离屏渲染环境,构建与离屏渲染环境对应的纹理标识;根据纹理标识表征的纹理对象,确定与纹理对象对应的图像渲染媒介;将图像渲染媒介配置至播放组件。
在其中一个实施例中,检测模块还用于按预设频率,对离屏渲染环境中的视频帧进行抽帧处理,得到待检测视频帧。
在其中一个实施例中,解码模块还用于当离屏渲染环境的播放模式为静音播放时,启动播放组件对目标视频进行解码,将解码得到的视频帧渲染至离屏渲染环境;当离屏渲染环境的播放模式为非静音播放时,将播放模式调整为静音模式,启动播放组件对目标视频进行解码,将解码得到的视频帧渲染至离屏渲染环境。
在其中一个实施例中,解码模块还用于当监测到应用程序切换到后台时,并记录后台运行时长;当后台运行时长达到预设时长时,启动检测进程。
在其中一个实施例中,监测模块还用于当监测到应用程序从后台切换至前端时,结束检测进程。
上述播放组件兼容性检测装置,基于应用程序切换至后台时启动的检测进程,将播放组件加载至检测进程,以后台进程的形式加载并启动播放组件,通过创建离屏渲染环境,通过播放组件将应用程序对应的目标视频解码至离屏渲染环境,便于实现播放组件在用户无感知的情况下进行视频解码,由于图像检测模型是基于包括异常图像的图像集训练得到的,从离屏渲染环境的解码数据中提取待检测视频帧,将待检测视频帧输入预设的图像检测模型,可以判断视频帧是否存在异常,从而基于视频帧检测结果,得到播放组件兼容性检测结果,实现了在应用程序的后台运行过程中的播放组件兼容性检测,检测过程不依赖用户的实际操作和反馈,提高了播放组件的兼容性检测效率。
关于播放组件兼容性检测装置的具体限定可以参见上文中对于播放组件兼容性检测方法的限定,在此不再赘述。上述播放组件兼容性检测装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图12所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种播放组件兼容性检测方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图12中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。