弹幕显示方法和装置制造方法及图纸

技术编号:13566963 阅读:36 留言:0更新日期:2016-08-20 22:41
本发明专利技术实施例公开了一种弹幕显示方法和装置。所述方法包括:在目标视频的播放过程中,UI主线程实时监测弹幕显示请求;在监测到所述弹幕显示请求时,所述UI主线程开启至少一个后台子线程;所述后台子线程根据所述弹幕显示请求以及设定的弹幕绘制规则,实时绘制弹幕内容;所述UI主线程将所述后台子线程绘制完成的所述弹幕内容在所述目标视频的播放界面中进行显示。本发明专利技术优化了现有的弹幕显示技术,减少了弹幕显示任务对UI主线程资源的占用。

【技术实现步骤摘要】

本专利技术实施例涉及计算机技术,尤其涉及一种弹幕显示方法和装置
技术介绍
弹幕显示,是在显示视频时,将大量的用户评论以滚动字幕形式显示在视频上的一种显示方式。通过弹幕功能,用户可以在网上观看视频时,增加自己的评论,并实时的显示在视频画面的上方,同时,在用户的本地客户端中也可以显示其他用户对于该视频增加的评论。通过这一功能,能够增强观看同一视频的不同用户之间的互动性。在现有技术中,弹幕显示功能主要通过UI(User Interface,用户界面)主线程统一实现的。其中,对于Android(安卓)系统来说,当一个应用程序启动后,系统会为该应用程序创建一个名为“main”的主线程。这个主线程(也就是UI主线程)主要用于处理各种UI事件。通过在UI主线程中分发各种功能事件,可以执行弹幕文字格式、弹幕弹出速度以及弹幕布局等控制操作。现有的弹幕显示技术的主要缺陷在于:弹幕显示过程中需要实时绘制图像以更新弹幕,因此,需要UI主线程不停的响应画图任务,在一定程度上会使得UI主线程会被画图函数阻塞,因而无法响应按键以及触屏等用户操作,增加了用户的操作等待时间,用户体验差。
技术实现思路
有鉴于此,本专利技术实施例提供一种弹幕显示方法和装置,以优化现有的弹幕显示技术,减少弹幕显示任务对UI主线程资源的占用。在第一方面,本专利技术实施例提供了一种弹幕显示方法,包括:在目标视频的播放过程中,UI主线程实时监测弹幕显示请求;在监测到所述弹幕显示请求时,所述UI主线程开启至少一个后台子线程;所述后台子线程根据所述弹幕显示请求以及设定的弹幕绘制规则,实时绘制弹幕内容;所述UI主线程将所述后台子线程绘制完成的所述弹幕内容在所述目标视频的播放界面中进行显示。在第二方面,本专利技术实施例提供了一种弹幕显示装置,包括:弹幕显示请求监控模块,用于在目标视频的播放过程中,通过UI主线程实时监测弹幕显示请求;后台子线程开启模块,用于在监测到所述弹幕显示请求时,通过所述UI主线程开启至少一个后台子线程;弹幕内容绘制模块,用于通过所述后台子线程根据所述弹幕显示请求以及设定的弹幕绘制规则,实时绘制弹幕内容;弹幕显示模块,用于通过所述UI主线程将所述后台子线程绘制完成的所述弹幕内容在所述目标视频的播放界面中进行显示。本专利技术实施例的技术方案在监测到用户发送的弹幕显示请求时,不再占用UI主线程完成弹幕内容的绘制,而是通过在UI主线程开启至少一个后台子线程,并通过所述后台子线程实时绘制弹幕内容后,经由UI主线程绘制完成的弹幕内容在视频的播放界面中进行显示的技术手段,解决了现有的弹幕显示技术需要UI主线程不停的响应画图任务,因而无法实时响应按键以及触屏等用户操
作,增加了用户的操作等待时间,用户体验差等问题,优化了现有的弹幕显示技术,减少了弹幕显示任务对UI主线程资源的占用。附图说明图1是本专利技术第一实施例的一种弹幕显示方法的流程图;图2是本专利技术第二实施例的一种弹幕显示方法的流程图;图3是本专利技术第三实施例的一种弹幕显示方法的流程图;图4是本专利技术第四实施例的一种弹幕显示装置的结构图。具体实施方式为了使本专利技术的目的、技术方案和优点更加清楚,下面结合附图对本专利技术具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。第一实施例图1为本专利技术第一实施例提供的弹幕显示方法的流程图,本实施例的方法
可以由弹幕显示装置来执行,该装置可通过硬件和/或软件的方式实现,并一般可以集成于具有弹幕显示功能的视频播放器中,或作为视频播放器的子程序。其中,所述视频播放器可以为安装于终端设备中的客户端应用程序,也可以为配置于网页中的视频播放插件,本实施例对此并不进行限制。本实施例的方法具体包括:110、在目标视频的播放过程中,UI主线程实时监测弹幕显示请求。一般来说,在视频的播放过程中,用户可以根据个人喜好打开或者关闭视频播放器向用户提供的弹幕显示按钮,以观看或者屏蔽弹幕。典型的,当用户在目标视频的播放界面中,点击或者触摸弹幕显示按钮打开弹幕功能时,触发产生所述弹幕显示请求。如
技术介绍
所述,UI主要用于处理各种UI事件并响应按键以及触屏等用户操作,因此,在目标视频的播放过程中,所述UI主线程实时监测由用户操作所触发产生的监测弹幕显示请求。120、在监测到所述弹幕显示请求时,所述UI主线程开启至少一个后台子线程。在本实施例中,UI主线程在监测到所述弹幕显示请求时,并不占用UI主线程中的珍贵资源来实现弹幕数据的读取、弹幕绘制等弹幕处理功能,而是通过开启后台子线程的方式,将所述弹幕处理功能移交给后台线程实现,这样就可以大大减少对UI主线程中资源的占用。其中,UI主线程可以开启一个或者多个后台子线程来实现所述弹幕处理功能,本实施例对此并不进行限制。在本实施例的一个优选的实施方式中,所述至少一个后台子线程可以通过调用Android系统平台的SurfaceView组件的Thread类的run方法实现。其中,SurfaceView组件具有在独立于UI主线程之外的后台线程中向屏幕绘图的功能,可以实现高效率的绘制二维图或者显示图像,在Android系统平台中,提供有功能完善的SurfaceView组件。一般来说,可以在UI主线程中通过接口surfaceHolder.callback接口实现对SurfaceView组件的调用。130、所述后台子线程根据所述弹幕显示请求以及设定的弹幕绘制规则,实时绘制弹幕内容。在本实施例中,为了最终实现将弹幕在目标视频的播放界面中进行显示,所述后台子线程需要完成的操作主要包括:获取弹幕数据,也就是需要获取在播放界面中实时显示的弹幕文字,一般来说,弹幕数据在存储时是与视频播放时间相对应的,也就是说,在不同的视频播放时间下所需要显示的弹幕是不同的,因此需要首先根据当前目标视频的播放时间,获取对应的弹幕数据;将获取的弹幕数据按照设定的规则(例如,弹幕文字颜色以及弹幕文字显示位置等)在画布(Canvas)中进行绘制。因此,可以使用一个后台子线程来完成上述操作,也可以使用两个后台子线程来配合完成上述操作。其中,可以通过在SurfaceView组件的Thread类的run方法中添加对应的功能代码的方式为各后台子线程的赋予不同的弹幕处理功能。140、所述UI主线程将所述后台子线程绘制完成的所述弹幕内容在所述目标视频的播放界面中进行显示。在本实施例中,UI主线程通过对后台子线程绘制完成的所述弹幕内容进行渲染,即可实现将弹幕在目标视频的播放界面中进行显示。典型的,后台子线程在画布中进行绘图后,绘制结果会缓存于SurfaceView
中的成员变量Surface中,在后台子线程绘制完成后,本文档来自技高网
...

【技术保护点】
一种弹幕显示方法,其特征在于,包括:在目标视频的播放过程中,用户界面UI主线程实时监测弹幕显示请求;在监测到所述弹幕显示请求时,所述UI主线程开启至少一个后台子线程;所述后台子线程根据所述弹幕显示请求以及设定的弹幕绘制规则,实时绘制弹幕内容;所述UI主线程将所述后台子线程绘制完成的所述弹幕内容在所述目标视频的播放界面中进行显示。

【技术特征摘要】
1.一种弹幕显示方法,其特征在于,包括:在目标视频的播放过程中,用户界面UI主线程实时监测弹幕显示请求;在监测到所述弹幕显示请求时,所述UI主线程开启至少一个后台子线程;所述后台子线程根据所述弹幕显示请求以及设定的弹幕绘制规则,实时绘制弹幕内容;所述UI主线程将所述后台子线程绘制完成的所述弹幕内容在所述目标视频的播放界面中进行显示。2.根据权利要求1所述的方法,其特征在于,所述后台子线程包括弹幕加载子线程以及弹幕绘制子线程;所述后台子线程根据所述弹幕显示请求以及设定的弹幕绘制规则,实时绘制弹幕内容包括:所述弹幕加载子线程在设定弹幕数据存储区域内读取与目标视频的当前播放时间对应的弹幕数据,并将所述弹幕数据存储于加载队列中;所述弹幕绘制子线程从所述加载队列中获取所述弹幕数据,并根据所述弹幕数据以及设定弹幕绘制规则实时绘制弹幕内容。3.根据权利要求2所述的方法,其特征在于,所述弹幕绘制子线程从所述加载队列中获取所述弹幕数据,并根据所述弹幕数据以及设定弹幕绘制规则实时绘制弹幕内容具体包括:所述弹幕绘制子线程从所述加载队列中获取与单屏弹幕显示数量对应的所述弹幕数据;所述弹幕绘制子线程根据弹幕显示参数,将获取的所述弹幕数据实时绘制于一块画布中。4.根据权利要求3所述的方法,其特征在于,所述弹幕显示参数包括下述
\t至少一项:弹幕文字颜色、弹幕文字大小、弹幕文字字体以及弹幕文字显示位置、以及弹幕文字滚动方向。5.根据权利要求3所述的方法,其特征在于,所述弹幕绘制子线程包括至少一个用户输入接口;相应的,在所述UI主线程开启所述弹幕绘制子线程之后,还包括:所述弹幕绘制子线程通过所述用户输入接口获取用户输入的自定义参数;其中,所述自定义参数包括自定义参数类型以及自定义参数值;所述弹幕绘制子线程将与所述自定义参数类型对应的所述弹幕显示参数的参数值调整为所述自定义参数值。6.根据权利要求1-5任一所述的方法,其特征在于,所述至少一个后台子线程通过调用Android系统平台的SurfaceView组件的Thread类的run方法实现。7.一种弹幕显示装置,其特征...

【专利技术属性】
技术研发人员:李欣
申请(专利权)人:乐视网信息技术北京股份有限公司
类型:发明
国别省市:北京;11

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

1