播放器预加载、运行方法、装置、设备及介质制造方法及图纸

技术编号:21914168 阅读:24 留言:0更新日期:2019-08-21 12:29
本发明专利技术公开了播放器预加载、运行方法、装置、设备及介质,所述方法包括在预加载阶段:创建图形处理线程,使用所述图形处理线程创建离屏渲染表面对象,所述离屏渲染表面对象用于输出由解码器解码得到的解码数据,以便于在为播放所述视频文件所生成的实际渲染表面对象中绘制所述解码数据;基于所述离屏渲染表面对象启动解码器;在运行阶段:创建视图对象;将所述视图对象传输至图形处理线程,以便于所述图形处理线程获取实际渲染表面对象,并基于离屏渲染表面对象输出的解码数据绘制所述实际渲染表面对象;由解码器解码以便于所述图形处理线程中的离屏渲染表面对象接收并输出解码数据。本发明专利技术可以达到瞬间显示出图像的效果,从而提升用户粘度。

Player preloading, operation method, device, equipment and media

【技术实现步骤摘要】
播放器预加载、运行方法、装置、设备及介质
本专利技术涉及播放器优化领域,尤其涉及播放器预加载、运行方法、装置、设备及介质。
技术介绍
在安卓系统中,播放器依赖解码器解码音视频文件,并将解码结果渲染出来以实现音视频文件的播放。在播放器的工作过程中,其解码器只有在获取表面对象后才可以被启动。为了提升播放器播放音视频文件的速度,现有技术提出了两种播放器预加载方案:第一种预加载方案为直接启动一个播放器,开始读取播放数据并启动音视频分离器(Demuxer),但是由于不存在表面对象,因此并没有启动解码器,等到真正需要进行播放时,即具备生成表面对象的条件后,才生成并获取表面对象并将所述表面对象设置给播放器,播放器再行启动解码器进行解码,这一预加载方案虽然可以提前进行部分预加载工作,但是真正开始播放的时候还需要初始化解码器,然后才开始解码,而这个过程需要花费几百毫秒的时间,达不到瞬间启播的效果。第二种预加载方案为预先设置空的表面对象,并将所述空的表面对象用于触发解码器的启动。等到真正需要播放时,再生成的实际的表面对象。但是,因为解码器只能够在初始化的时候才能够接收表面对象,为了使得实际生成的表面对象生效,需要重启解码器。但是这一过程重启解码器依然耗费较多时间。
技术实现思路
为了解决现有技术中无法基于播放器预加载实现瞬间启播的技术问题,本专利技术实施例提供播放器预加载、运行方法、装置、设备及介质。一方面,本专利技术提供了一种播放器预加载方法,所述方法包括:创建图形处理线程,使用所述图形处理线程创建离屏渲染表面对象,所述离屏渲染表面对象用于输出由解码器解码得到的解码数据,以便于在为播放所述视频文件所生成的实际渲染表面对象中绘制所述解码数据;基于所述离屏渲染表面对象启动解码器。另一方面,本专利技术提供一种播放器运行方法,包括:响应于播放指令,创建视图对象;将所述视图对象传输至图形处理线程,以便于所述图形处理线程从所述视图对象中获取实际渲染表面对象,并基于离屏渲染表面对象输出的解码数据绘制所述实际渲染表面对象;由解码器解码视频帧数据以得到解码数据以便于所述图形处理线程中的离屏渲染表面对象接收并输出所述解码数据。另一方面,本专利技术提供一种播放器预加载装置,所述装置包括:图形处理线程创建模块,用于创建图形处理线程,使用所述图形处理线程创建离屏渲染表面对象,所述离屏渲染表面对象用于输出由解码器解码得到的解码数据,以便于在为播放所述视频文件所生成的实际渲染表面对象中绘制所述解码数据;解码器启动模块,用于基于所述离屏渲染表面对象启动解码器。另一方面,本专利技术提供一种播放器运行装置,所述装置包括:视图对象创建模块,用于响应于播放指令,创建视图对象;视图对象传输模块,用于将所述视图对象传输至图形处理线程,以便于所述图形处理线程从所述视图对象中获取实际渲染表面对象,并基于离屏渲染表面对象输出的解码数据绘制所述实际渲染表面对象;解码模块,用于由解码器解码视频帧数据以得到解码数据以便于所述图形处理线程中的离屏渲染表面对象接收并输出所述解码数据。另一方面,本专利技术提供了一种设备,其特征在于,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现一种播放器预加载方法及播放器运行方法。另一方面,本专利技术提供了一种计算机存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行一种播放器预加载方法及播放器运行方法。本专利技术提供了播放器预加载、运行方法、装置、设备及介质。本专利技术中可以直接使用播放器预加载阶段创建的图形处理线程以及离屏渲染表面对象,并且不需要进行解码器的重启。由此可知,在播放器预加载完成后,播放器就处于可播状态,用户需要播放的时候直接启动就可以做到瞬间启播,即待播出的图像瞬间上屏,达到瞬间显示出图像的效果,从而提升用户粘度。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。图1是本专利技术提供的一种播放器预加载方法流程图;图2是本专利技术提供的图形处理线程预加载阶段流程图;图3是本专利技术提供的创建离屏渲染表面对象流程图;图4是本专利技术提供的基于所述离屏渲染表面对象启动解码器的之前流程图;图5是本专利技术提供的一种播放器预加载方法的示意图;图6是本专利技术提供的一种播放器运行方法流程图;图7是本专利技术提供的图形处理线程播放阶段流程图;图8是本专利技术提供的播放器运行的示意图;图9是本专利技术提供的一种播放器预加载装置框图;图10是本专利技术提供的一种播放器运行装置框图;图11是本专利技术提供的一种用于实现本专利技术实施例所提供的方法的设备的硬件结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。需要说明的是,本专利技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本专利技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。为了使本专利技术实施例公开的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术实施例进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本专利技术实施例,并不用于限定本专利技术实施例。为了更清楚地说明本专利技术实施例中的技术方案及其所取得的技术进步,本专利技术实施例首先对本专利技术实施例中用到的或实现的技术术语与技术背景做下述阐述:安卓操作系统(Android):Android是一种基于Linux的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由谷歌(Google)公司和开放手机联盟领导及开发。视图对象(View):Android的一种用户界面(UserInterface,UI)控件,一般用于复杂图像显示,视频播放时可以用视图对象作为图像的载体以便于后期实现图像的显示。视图对象包含表面视图(SurfaceView)和纹理视图(TextureView)两种方式。表面视图(SurfaceView):在Android系统中,有一种特殊的视图,称为SurfaceView,它拥有独立的绘图表面,即它不与其宿主窗口共享同一个绘图表面,由于拥有独立的绘图表面,因此SurfaceView的UI就可以在一个独立的线程中进行行绘制。SurfaceView相较本文档来自技高网...

【技术保护点】
1.一种播放器预加载方法,其特征在于,所述方法包括:创建图形处理线程,使用所述图形处理线程创建离屏渲染表面对象,所述离屏渲染表面对象用于输出由解码器解码得到的解码数据,以便于在为播放所述视频文件所生成的实际渲染表面对象中绘制所述解码数据;基于所述离屏渲染表面对象启动解码器。

【技术特征摘要】
1.一种播放器预加载方法,其特征在于,所述方法包括:创建图形处理线程,使用所述图形处理线程创建离屏渲染表面对象,所述离屏渲染表面对象用于输出由解码器解码得到的解码数据,以便于在为播放所述视频文件所生成的实际渲染表面对象中绘制所述解码数据;基于所述离屏渲染表面对象启动解码器。2.根据权利要求1所述的方法,其特征在于,所述基于所述离屏渲染表面对象启动解码器之前,包括:读取视频文件;将所述视频文件解封装并缓存解封装后得到的视频帧数据。3.根据权利要求1所述的方法,其特征在于,所述图形处理线程还用于执行下述步骤:初始化开放图形库;创建离屏渲染表面对象;将离屏渲染表面对象传输至解码器。4.根据权利要求3所述的方法,其特征在于,所述创建离屏渲染表面对象,包括:创建离屏渲染环境;将所述离屏渲染环境绑定到目标纹理标识;基于所述目标纹理标识生成表面纹理对象;基于所述表面纹理对象生成离线渲染纹理对象。5.一种播放器运行方法,其特征在于,包括:响应于播放指令,创建视图对象;将所述视图对象传输至图形处理线程,以便于所述图形处理线程从所述视图对象中获取实际渲染表面对象,并基于离屏渲染表面对象输出的解码数据绘制所述实际渲染表面对象;由解码器解码视频帧数据以得到解码数据以便于所述图形处理线程中的离屏渲染表面对象接收并输出所述解码数据。6.根据权利要求5所述的方法,其特征在于,所述图形处理线程还用于执行下述步骤:释放离屏渲染环境,并基于所述视图对象创建实际渲染表面对象;激活所述实际渲染表面对象;响应于离屏渲染表面对象接收的解码...

【专利技术属性】
技术研发人员:左洪涛
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1