CN109710365A - 一种弹幕显示方法、装置、电子设备及介质 - Google Patents

一种弹幕显示方法、装置、电子设备及介质 Download PDF

Info

Publication number
CN109710365A
CN109710365A CN201811626377.2A CN201811626377A CN109710365A CN 109710365 A CN109710365 A CN 109710365A CN 201811626377 A CN201811626377 A CN 201811626377A CN 109710365 A CN109710365 A CN 109710365A
Authority
CN
China
Prior art keywords
view
barrier bed
barrage
location parameter
target object
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.)
Pending
Application number
CN201811626377.2A
Other languages
English (en)
Inventor
张磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201811626377.2A priority Critical patent/CN109710365A/zh
Publication of CN109710365A publication Critical patent/CN109710365A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Processing Or Creating Images (AREA)

Abstract

本发明公开了一种弹幕显示方法、装置、电子设备及介质,包括:获取当前视频中显示的目标对象的位置参数和尺寸参数;根据所述位置参数和所述尺寸参数,绘制透明的覆盖所述目标对象的遮挡层视图,所述遮挡层视图与弹幕视图预设为异或显示关系;当所述弹幕视图与所述遮挡层视图重叠时,基于所述异或显示关系,裁剪所述弹幕视图与所述遮挡层视图的重叠部分。解决了现有技术中的弹幕随机滑动,存在的遮挡关键对象,影响观众获取视频主要内容的技术问题。提高了观众获取视频内容的充分度。

Description

一种弹幕显示方法、装置、电子设备及介质
技术领域
本发明涉及互联网技术领域,尤其涉及一种弹幕显示方法、装置、电子设备及介质。
背景技术
目前,随着网络通信技术的进步和宽带网络的提速,网络视频得到了越来越多的发展和应用,视频提供平台和直播平台等服务商为用户提供了丰富的视频体验。
为了加强用户在观看视频时的参与感和互动性,很多服务商都提供了弹幕功能。传统方案中的弹幕是在整个屏幕中随机滑动的,当弹幕的数量非常多的时候会出现弹幕将人脸等关键对象进行遮挡的问题,会严重影响用户观看视频节目的效果。
可见,现有技术中的弹幕随机滑动,存在遮挡关键对象,影响观众获取视频主要内容的技术问题。
发明内容
本申请实施例通过提供一种弹幕显示方法、装置、电子设备及介质,解决了现有技术中的弹幕随机滑动,存在的遮挡关键对象,影响观众获取视频主要内容的技术问题。
第一方面,提供一种弹幕显示方法,包括:
获取当前视频中显示的目标对象的位置参数和尺寸参数;
根据所述位置参数和所述尺寸参数,绘制透明的覆盖所述目标对象的遮挡层视图,所述遮挡层视图与弹幕视图预设为异或显示关系;
当所述弹幕视图与所述遮挡层视图重叠时,基于所述异或显示关系,裁剪所述弹幕视图与所述遮挡层视图的重叠部分。
可选的,所述目标对象为人脸。
可选的,所述根据所述位置参数和所述尺寸参数,绘制透明的覆盖所述目标对象的遮挡层视图,包括:调用***中的Paint类的构造函数来实例化Paint类型的mPaint对象;调用***中的Canvas对象,使用构建的所述mPaint对象,根据所述位置参数和所述尺寸参数在所述Canvas上绘制出maskView对象,所述maskView对象为透明的覆盖所述目标对象的遮挡层视图。
可选的,所述位置参数和尺寸参数为能遮挡所述目标对象的最小矩形的四个顶点坐标;所述调用***中的Canvas对象,使用构建的所述mPaint对象,根据所述位置参数和所述尺寸参数在所述Canvas上绘制出maskView对象,包括:调用canvas对象中的canvas.drawRect(left,top,right,bottom,mPaint)方式来绘制maskView对象,其中left,top,right,bottom分别为所述四个顶点坐标。
可选的,所述方法包括:调用paint.setXfermode(new PorterDuffXfermode(Mode.SRC_XOR))方法来构建异或显示关系的Paint对象;调用canvas对象中的canvas.drawBitmap(danmuVIew,0f,0f,paint)方法来将所述遮挡层视图与弹幕视图预设为异或显示关系,其中,danmuView标示的是所述弹幕视图,canvas标示的是所述遮挡层视图,当所述弹幕视图与所述遮挡层视图重叠时,基于paint对象所指定所述异或显示关系,裁剪所述弹幕视图与所述遮挡层视图的重叠部分。
可选的,所述方法包括:获取所述当前视频中显示的所述目标对象的轮廓参数;所述根据所述位置参数和所述尺寸参数,绘制透明的覆盖所述目标对象的遮挡层视图,包括:根据所述位置参数和所述尺寸参数,绘制透明的覆盖所述目标对象的遮挡层视图;采用所述轮廓参数修正所述遮挡层视图,使所述遮挡层视图修正为所述轮廓参数表征的形状。
可选的,所述采用所述轮廓参数修正所述遮挡层视图,包括:根据所述轮廓参数生成轮廓视图;叠加所述轮廓视图与所述遮挡层视图,以所述轮廓视图与所述遮挡层视图重叠的区域作为修正后的所述遮挡层视图。
第二方面,提供一种弹幕显示装置,包括:
获取模块,用于获取当前视频中显示的目标对象的位置参数和尺寸参数;
绘制模块,用于根据所述位置参数和所述尺寸参数,绘制透明的覆盖所述目标对象的遮挡层视图,所述遮挡层视图与弹幕视图预设为异或显示关系;
裁剪模块,用于当所述弹幕视图与所述遮挡层视图重叠时,基于所述异或显示关系,裁剪所述弹幕视图与所述遮挡层视图的重叠部分。
第三方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现第一方面任一所述的方法。
第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现第一方面任一所述的方法。
本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
本申请实施例提供的弹幕显示方法、装置、电子设备及介质,通过设置透明的遮挡层视图,并设置遮挡层视图与弹幕视图为异或显示关系,以在当弹幕视图与遮挡层视图重叠时,基于所述异或显示关系,裁剪弹幕视图与遮挡层视图的重叠部分,充分显示出目标对象。在弹幕视图与遮挡层视图不重叠时,遮挡层视图的透明化设置也能充分显示出目标对象。从而实现目标对象不受弹幕遮挡,以使用户能随时获得视频中目标对象的完整图像,提高视频关键信息获取的充分度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例一中弹幕显示方法的流程图;
图2为本申请实施例二中装置的结构示意图;
图3为本申请实施例中电子设备的结构示意图;
图4为本申请实施例中计算机可读存储介质的结构示意图。
具体实施方式
本申请实施例通过提供一种弹幕显示方法、装置、电子设备及介质,解决了现有技术中的弹幕随机滑动,存在的遮挡关键对象,影响观众获取视频主要内容的技术问题。通过设置透明的遮挡层视图,并设置遮挡层视图与弹幕视图为异或显示关系,以在当弹幕视图与遮挡层视图重叠时,基于所述异或显示关系,裁剪弹幕视图与遮挡层视图的重叠部分,充分显示出目标对象。在弹幕视图与遮挡层视图不重叠时,遮挡层视图的透明化设置也能充分显示出目标对象。从而实现目标对象不受弹幕遮挡,以使用户能随时获得视频中目标对象的完整图像,提高视频关键信息获取的充分度。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
实施例一
如图1所示,本实施例提供了一种弹幕显示方法,包括:
步骤S101,获取当前视频中显示的目标对象的位置参数和尺寸参数;
步骤S102,根据所述位置参数和所述尺寸参数,绘制透明的覆盖所述目标对象的遮挡层视图,所述遮挡层视图与弹幕视图预设为异或显示关系;
步骤S103,当所述弹幕视图与所述遮挡层视图重叠时,基于所述异或显示关系,裁剪所述弹幕视图与所述遮挡层视图的重叠部分。
在本申请实施例中,所述方法可以应用于智能手机、笔记本、台式电脑和平板电脑等能播放视频的电子设备,在此不作限制。所述当前视频可以是直播视频,也可以是播放的以往录制的视频,在此也不作限制。较优的,本实施例提供的方法应用于安装安卓***的电子设备。
所述目标对象可以是人脸、人体或移动的物体等,在此不作限制。在本申请实施例中,以所述目标对象是人脸为例来进行说明。
下面,结合图1来详细介绍本申请实施例提供的弹幕显示方法的具体实施步骤:
步骤S101,获取当前视频中显示的目标对象的位置参数和尺寸参数。
具体来讲,可以先通过现有的识别模块来从当前视频中识别出目标对象,再通过识别模块返回目标对象的位置参数和尺寸参数。具体的识别方法可以是特征比对法,轮廓比对法,机器学习算法等,在此不作限制也不作一一列举。
假设目标对象为人脸,则人脸识别模块会识别出当前视频中的人脸,并返回人脸的位置参数和尺寸参数,该位置参数和尺寸参数可以是人脸在显示屏上的坐标信息,或人脸在当前视频中的坐标信息,或人脸距预设标志位的距离和角度信息等,在此不作限制。
举例来讲,为了便于遮挡层视图的绘制,可以设置人脸识别模块将人脸识别成一个矩形图案(较优的,该矩形图案为能遮挡所述目标对象的最小矩形),然后将该矩形的左下角和右上角的坐标信息返回,我们将返回的坐标信息标记为(x1,y1)和(x2,y2)。设置该矩形的四边平行于当前视频显示边框,则通过坐标信息(x1,y1)和(x2,y2)可以计算出矩形图案的四个顶点的坐标:left(x1,y1),top(x1,y2),right(x2,y2),bottom(x2,y1),其中,left标示的是左下角顶点,top标示的是左上角顶点,right标示的是右上角顶点、bottom标示的是右下角顶点。这四个坐标可以表征目标对象的位置和尺寸。该坐标信息会随着人脸的移动而动态的进行改变。
当然,具体实施过程中,遮挡层视图也可以为圆形,椭圆形等,在此不作限制。
步骤S102,根据所述位置参数和所述尺寸参数,绘制透明的覆盖所述目标对象的遮挡层视图,所述遮挡层视图与弹幕视图预设为异或显示关系。
在安卓***中,设置遮挡层视图为maskView对象,以便于能通过maskView对象的可叠加显示、可与其他视图对象作异或等逻辑计算等性能来实现避免弹幕视图遮挡目标对象。
具体实施过程中,位置参数和尺寸参数不同,绘制遮挡层视图的具体方法也不同,下面列举两种为例:
第一种,位置参数和尺寸参数为坐标。
此种情况,可以调用***中的Paint类的构造函数来实例化Paint类型的mPaint对象;再调用***中的Canvas对象,使用构建的所述mPaint对象,根据所述位置参数和所述尺寸参数在所述Canvas上绘制出maskView对象,所述maskView对象为透明的覆盖所述目标对象的遮挡层视图。
具体来讲,可以先构建画笔,即先调用***中的Paint类的构造函数来实例化Paint类型的mPaint对象,具体命令为mPaint=new Paint()。再使用构建的mPaint对象作为画笔在Canvas上绘制出maskView对象,即调用canvas对象中的canvas.drawRect()命令来绘制maskView对象。例如,位置参数和尺寸参数为识别模块识别出的覆盖目标对象的矩形图案的四个顶点坐标,则通过canvas.drawRect(left,top,right,bottom,mPaint)绘制maskView对象,其中left,top,right,bottom分别为所述四个顶点坐标。从而绘制构建出一个顶点在left,top,right,bottom的矩形的maskView对象,即所述遮挡层视图,该视图的属性预设为透明。
第二种,位置参数和尺寸参数为标记。
即在识别出目标对象后,在目标对象处设置标记,然后根据标记的位置和尺寸来绘制遮挡层视图。在此不作累述。
当然,绘制遮挡层视图的方式不限于上述两种,在此不作限制。
进一步,在每次坐标信息随着目标对象的移动而动态的进行改变时,均会触发构建出一个新的maskView对象作为所述遮挡层视图替代之前的遮挡层视图,以保证maskView对象能够实时的跟随视频中目标对象的运动而运动。
下面介绍将所述遮挡层视图与弹幕视图预设为异或显示关系的方法:
Android***提供的混合模式中有这样一种混合方法,当两个视图出现重叠的时候***根据混合参数的不同自动对两个视图进行裁剪,故本实施例将混合参数传递成"异或"的时候,***会保留两个视图非重叠的部分,重叠的部分的视图会被裁剪掉,根据这个特性巧妙地实现遮挡层视图和弹幕视图之间遮挡的逻辑需求。
具体可以先我们通过new PorterDuffXfermode(Mode.SRC_XOR)方法来构建一个混合模式的对象,其中混合模式设置的是Mode.SRC_XOR异或模式;再调用paint.setXfermode(new PorterDuffXfermode(Mode.SRC_XOR))方法来构建异或显示关系的Paint对象,其中,SRC_XOR表征异或关系。还需要将maskView对象(遮挡层视图)转变成一个canvas对象,具体的转变成canvas对象的方法是通过调用Canvas canvas=new Canvas(maskView)来实现转变的流程。然后,调用canvas对象中的canvas.drawBitmap(danmuVIew,0f,0f,paint)方法来将所述遮挡层视图与弹幕视图预设为异或显示关系,其中,danmuView标示的是所述弹幕视图,canvas标示的是所述遮挡层视图,当所述弹幕视图与所述遮挡层视图重叠时,基于paint对象所指定的所述异或显示关系,裁剪所述弹幕视图与所述遮挡层视图的重叠部分。
在另一种实施方式中,还可以对遮挡层视图进行修正,以获得更符合目标对象形状的遮挡层视图。即可以设置获取所述当前视频中显示的所述目标对象的轮廓参数。在根据所述位置参数和所述尺寸参数,绘制透明的覆盖所述目标对象的遮挡层视图之后,再采用所述轮廓参数修正所述遮挡层视图,使所述遮挡层视图修正为所述轮廓参数表征的形状。具体采用所述轮廓参数修正所述遮挡层视图实现方式可以为根据所述轮廓参数生成轮廓视图;叠加所述轮廓视图与所述遮挡层视图,以所述轮廓视图与所述遮挡层视图重叠的区域作为修正后的所述遮挡层视图。
举例来讲,人脸识别模块识别出人脸的轮廓参数,并根据人脸轮廓生成轮廓视图,通过设置轮廓视图与遮挡层视图的逻辑关系,来实现将遮挡层视图裁剪为只保留与轮廓视图重叠的部分,这样就实现了对遮挡层视图的裁剪,使其更符合人脸的外形,则在后续通过遮挡层视图避免弹幕视图遮挡时,能尽量少的裁剪弹幕视图,在保证用户获取完整目标对象图像的基础上,尽量少的减少弹幕视图的被裁剪量,实现弹幕出现在人脸边缘的效果。
在另一种实施方式中,还可以不绘制遮挡层视图,而是加载预存的透明图片作为遮挡层视图。
具体来讲,本地资源文件中预先存储有透明图片,先在内存中定义ImageView类型的maskView对象。在每次接收到新的位置参数和尺寸参数后,触发加载本地资源文件中预存的所述透明图片至所述maskView对象,以所述maskView对象作为所述遮挡层视图。由于加载一张图片比绘制一张图片所带来的性能开销要小很多,通过加载预存的透明图片,而不是在每次接收到新的位置参数和尺寸参数后,实时绘制遮挡层视图能减小***性能开销,节省一部分的***资源信息。
可以设置定义ImageView类型的maskView对象的具体定义方法是设置privateImageView maskView=null,即定义的时候将maskView对象初始化为null空对象。在每次接收到新的位置参数和尺寸参数(或新的坐标数据)后,先判断一下maskView是否被加载过,具体是通过判定maskView对象是否等于null空对象来判定的,如果maskView对象等于null空对象,说明此时maskview从来没有被加载过,此时就需要对其进行加载,否则就执行后续的逻辑。
为了能最终实现遮挡层视图为maskView对象,需要对加载的透明图片作多次转换,具体为:先通过Android***提供的BitmapFactory.decodeFile(path)来加载所述透明图片,生成Bbitmap类型的bitmap对象,其中,path是预存的所述透明图片的存储路径信息,然后,调用BitmapDrawable的构造函数Drawable drawable=new BitmapDrawable(bitmap)来将所述bitmap对象转变成Drawable类型的drawable对象。再通过强制类型转换,即调用(ImageView)drawable方法将所述drawable对象转变成ImageView类型的ImageView对象,并将所述ImageView对象赋值给定义的所述maskView对象。从而实现了生成所述maskView对象作为遮挡层视图。
在接收到新的位置参数和尺寸参数后,即触发加载透明图片,能够极大的提高视频页面的打开速度。进一步,本实施例在加载所述透明图片后,会对该加载后的透明图片进行缓存(缓存转变为ImageView类型的ImageView对象),通过缓存实现在下一次接收到新的位置参数和尺寸参数后,不需要再从新进行透明图片的加载和格式转换,直接从缓存中获取ImageView对象的赋值至maskView对象即可,极大地提高了加载速度,提高程序执行效率。
加载完成透明图片后,再根据所述尺寸参数调整所述遮挡层视图的尺寸,并根据所述位置参数设置所述遮挡层视图在所述当前视频中所处的位置,以覆盖所述目标对象,其中,所述遮挡层视图与弹幕视图预设为异或显示关系。
在本申请实施例中,假设尺寸参数和位置参数为目标对象的坐标,则可以将maskView对象的显示位置至于该坐标所在位置,将maskView对象的尺寸缩放为该坐标表征的尺寸,来实现合适的覆盖目标对象。
举例来讲,假设置参数和尺寸参数为识别模块识别出的覆盖人脸的矩形图案的四个顶点坐标,eft(x1,y1),top(x1,y2),right(x2,y2),bottom(x2,y1),其中,left标示的是左下角顶点,top标示的是左上角顶点,right标示的是右上角顶点、bottom标示的是右下角顶点。
首先,根据数学坐标系的基本知识可以快速的得到人脸的中心点坐标是((x1+x2)/2,(y1+y2)/2)。人脸的宽度是(x2-x1)的绝对值,高度是(y2-y1)的绝对值,可以将宽度和高度分别标记为width和height。然后通过调用Math类中的Math.max(width,height)方法来获取height和width中的最大值信息,将获取到的最大值信息标记为maxLength。
然后,进行位置调节,构建布局位置的params对象,具体通过LayoutParamsparams=new LayoutParams()来构建。然后通过调用params.leftMargin=(x1+x2)/2和params.topMargin=(y1+y2)/2的方法来将人脸的中点坐标设置到params对象中。然后调用maskView对象中的maskview.setParams(params)来将maskView对象移动到人脸识别的中点位置去。
再进行尺寸调节,调用maskView对象中的maskview.setWidth(maxLength/2)和maskview.setHeight(maxLength/2)方法来设置maskView对象的具体大小信息。这样就实现了人脸上覆盖一层maskView对象的方法。
需要说明的是,上述例子中是设置maskView对象的遮挡层视图为maxLength/2的正方体,这样可能会导致人脸区域的遮挡层视图略大于人脸范围,但这样能避免由于人脸长宽不定,导致的缩放成长方形会出现的拉升变形等问题。
当然,在具体实施过程中,遮挡层视图也可以为长方形、圆形,椭圆形等,在此不作限制。
在另一种实施方式中,在每次坐标信息随着目标对象的移动而动态的进行改变时,会先判断目标对象的中西位置是否改变,并判断目标对象的尺寸参数是否变化。如果两者都没有变化,则不对maskView对象作更改;如果仅有中点位置变化,则只需要更新maskView对象到新的位置;如果仅尺寸参数变化,则只需要对maskView对象进行缩放,避免了重复的进行图片加载,重复的进行位置或尺寸缩放设置,进一步节约***资源开销,提高处理效率。
步骤S103,当所述弹幕视图与所述遮挡层视图重叠时,基于所述异或显示关系,裁剪所述弹幕视图与所述遮挡层视图的重叠部分。
需要说明的是,以弹幕显示方式为从屏幕的最右边到屏幕的最左边的滚动方式为例,其具体实现过程为:先计算弹幕视图的起点坐标(tartX、StartY)s和终点坐标(endX、endY),一般来讲,startX=screenWidth,endX=0,screenWidth为视频在屏幕上显示的宽度。弹幕显示高度是一个随机值,往往endY=StartY,可以通过view.getHeight()函数来随机获取高度数值,假设该随机数就是StartY,从而确定了整个弹幕视图的坐标信息。接下来通过调用TranslateAnimation translateAnimation=new TranslateAnimation(startX,startY,endX,endY)方法来构建TranslateAnimation类型的translateAnimation对象。再调用translateAnimation.setDuration(time)方法来设置整个动画执行的时间周期,其中,time为时间周期。然后,通过调用view.startAnimation(translateAnimation)方法就可以实现整个弹幕视图的滚动动画过程。
在另一种实施方式中,弹幕显示方式还可以为:首先设计周期性的定时器T,然后在定时器T的每个定时周期超时后累加一小段时间位移dt,再通过弹幕视图的onlayout(left,top,right,bottom)函数来将累加的结果动态的设置为弹幕视图的位置信息,由于每隔T周期都会触发一次onlayout函数,以导致弹幕位置每隔T周期都会发生变化,从而实现了滚动动画的效果。
采用前述的设置方式后,在当弹幕视图与遮挡层视图重叠时,基于所述异或显示关系,裁剪弹幕视图与遮挡层视图的重叠部分,充分显示出目标对象。在弹幕视图与遮挡层视图不重叠时,遮挡层视图的透明化设置也能充分显示出目标对象。从而实现目标对象不受弹幕遮挡,以使用户能随时获得视频中目标对象的完整图像,提高视频关键信息获取的充分度。
基于同一发明构思,本申请提供了实施例一对应的装置实施例,详见实施例二。
实施例二
本实施例提供一种弹幕显示装置,如图2所示,包括:
获取模块201,用于获取当前视频中显示的目标对象的位置参数和尺寸参数;
绘制模块202,用于根据所述位置参数和所述尺寸参数,绘制透明的覆盖所述目标对象的遮挡层视图,所述遮挡层视图与弹幕视图预设为异或显示关系;
裁剪模块203,用于当所述弹幕视图与所述遮挡层视图重叠时,基于所述异或显示关系,裁剪所述弹幕视图与所述遮挡层视图的重叠部分。
在本申请实施例中,所述装置可以为智能手机、笔记本、台式电脑和平板电脑等能播放视频的电子设备,在此不作限制。所述当前视频可以是直播视频,也可以是播放的以往录制的视频,在此也不作限制。较优的,本实施例提供的装置为安装安卓***的电子设备。
所述目标对象可以是人脸、人体或移动的物体等,在此不作限制。
由于本实施例所介绍的装置为实施本申请实施例一中方法所采用的装置,故而基于本申请实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的装置的具体实施方式以及其各种变化形式,所以在此对于该装置如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中的方法所采用的设备,都属于本申请所欲保护的范围。
基于同一发明构思,本申请提供了实施例一对应的设备实施例,详见实施例三。
实施例三
本实施例提供一种电子设备,如图3所示,包括存储器310、处理器320及存储在存储器310上并可在处理器320上运行的计算机程序311,处理器320执行计算机程序311时实现:
获取当前视频中显示的目标对象的位置参数和尺寸参数;
根据所述位置参数和所述尺寸参数,绘制透明的覆盖所述目标对象的遮挡层视图,所述遮挡层视图与弹幕视图预设为异或显示关系;
当所述弹幕视图与所述遮挡层视图重叠时,基于所述异或显示关系,裁剪所述弹幕视图与所述遮挡层视图的重叠部分。
由于本实施例所介绍的电子设备为实施本申请实施例一中方法所采用的设备,故而基于本申请实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的电子设备的具体实施方式以及其各种变化形式,所以在此对于该电子设备如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中的方法所采用的设备,都属于本申请所欲保护的范围。
基于同一发明构思,本申请提供了实施例一对应的存储介质,详见实施例四。
实施例四
本实施例提供一种计算机可读存储介质400,如图4所示,其上存储有计算机程序411,该计算机程序411被处理器执行时实现:
获取当前视频中显示的目标对象的位置参数和尺寸参数;
根据所述位置参数和所述尺寸参数,绘制透明的覆盖所述目标对象的遮挡层视图,所述遮挡层视图与弹幕视图预设为异或显示关系;
当所述弹幕视图与所述遮挡层视图重叠时,基于所述异或显示关系,裁剪所述弹幕视图与所述遮挡层视图的重叠部分。
在具体实施过程中,该计算机程序411被处理器执行时,可以实现实施例一中任一实施方式。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种弹幕显示方法,其特征在于,包括:
获取当前视频中显示的目标对象的位置参数和尺寸参数;
根据所述位置参数和所述尺寸参数,绘制透明的覆盖所述目标对象的遮挡层视图,所述遮挡层视图与弹幕视图预设为异或显示关系;
当所述弹幕视图与所述遮挡层视图重叠时,基于所述异或显示关系,裁剪所述弹幕视图与所述遮挡层视图的重叠部分。
2.如权利要求1所述的方法,其特征在于,
所述目标对象为人脸。
3.如权利要求1所述的方法,其特征在于,所述根据所述位置参数和所述尺寸参数,绘制透明的覆盖所述目标对象的遮挡层视图,包括:
调用***中的Paint类的构造函数来实例化Paint类型的mPaint对象;
调用***中的Canvas对象,使用构建的所述mPaint对象,根据所述位置参数和所述尺寸参数在所述Canvas上绘制出maskView对象,所述maskView对象为透明的覆盖所述目标对象的遮挡层视图。
4.如权利要求3所述的方法,其特征在于,
所述位置参数和尺寸参数为能遮挡所述目标对象的最小矩形的四个顶点坐标;
所述调用***中的Canvas对象,使用构建的所述mPaint对象,根据所述位置参数和所述尺寸参数在所述Canvas上绘制出maskView对象,包括:
调用canvas对象中的canvas.drawRect(left,top,right,bottom,mPaint)方式来绘制maskView对象,其中left,top,right,bottom分别为所述四个顶点坐标。
5.如权利要求1所述的方法,其特征在于,包括:
调用paint.setXfermode(new PorterDuffXfermode(Mode.SRC_XOR))方法来构建异或显示关系的Paint对象;
调用canvas对象中的canvas.drawBitmap(danmuVIew,0f,0f,paint)方法来将所述遮挡层视图与弹幕视图预设为异或显示关系,其中,danmuView标示的是所述弹幕视图,canvas标示的是所述遮挡层视图,当所述弹幕视图与所述遮挡层视图重叠时,基于paint对象所指定所述异或显示关系,裁剪所述弹幕视图与所述遮挡层视图的重叠部分。
6.如权利要求1所述的方法,其特征在于,还包括:获取所述当前视频中显示的所述目标对象的轮廓参数;
所述根据所述位置参数和所述尺寸参数,绘制透明的覆盖所述目标对象的遮挡层视图,包括:
根据所述位置参数和所述尺寸参数,绘制透明的覆盖所述目标对象的遮挡层视图;
采用所述轮廓参数修正所述遮挡层视图,使所述遮挡层视图修正为所述轮廓参数表征的形状。
7.如权利要求6所述的方法,其特征在于,所述采用所述轮廓参数修正所述遮挡层视图,包括:
根据所述轮廓参数生成轮廓视图;
叠加所述轮廓视图与所述遮挡层视图,以所述轮廓视图与所述遮挡层视图重叠的区域作为修正后的所述遮挡层视图。
8.一种弹幕显示装置,其特征在于,包括:
获取模块,用于获取当前视频中显示的目标对象的位置参数和尺寸参数;
绘制模块,用于根据所述位置参数和所述尺寸参数,绘制透明的覆盖所述目标对象的遮挡层视图,所述遮挡层视图与弹幕视图预设为异或显示关系;
裁剪模块,用于当所述弹幕视图与所述遮挡层视图重叠时,基于所述异或显示关系,裁剪所述弹幕视图与所述遮挡层视图的重叠部分。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-7任一所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-7任一所述的方法。
CN201811626377.2A 2018-12-28 2018-12-28 一种弹幕显示方法、装置、电子设备及介质 Pending CN109710365A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811626377.2A CN109710365A (zh) 2018-12-28 2018-12-28 一种弹幕显示方法、装置、电子设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811626377.2A CN109710365A (zh) 2018-12-28 2018-12-28 一种弹幕显示方法、装置、电子设备及介质

Publications (1)

Publication Number Publication Date
CN109710365A true CN109710365A (zh) 2019-05-03

Family

ID=66258043

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811626377.2A Pending CN109710365A (zh) 2018-12-28 2018-12-28 一种弹幕显示方法、装置、电子设备及介质

Country Status (1)

Country Link
CN (1) CN109710365A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111698533A (zh) * 2020-06-12 2020-09-22 上海极链网络科技有限公司 一种视频处理方法、装置、设备和存储介质
CN111954060A (zh) * 2019-05-17 2020-11-17 上海哔哩哔哩科技有限公司 弹幕蒙版的渲染方法、计算机设备及可读存储介质
CN115086738A (zh) * 2022-06-07 2022-09-20 广州博冠信息科技有限公司 信息添加方法、装置、计算机设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106648337A (zh) * 2016-12-30 2017-05-10 智车优行科技(北京)有限公司 显示展示列表中内容的方法和装置、电子设备
CN108401177A (zh) * 2018-02-27 2018-08-14 上海哔哩哔哩科技有限公司 视频播放方法、服务器及视频播放***
CN109089170A (zh) * 2018-09-11 2018-12-25 传线网络科技(上海)有限公司 弹幕显示方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106648337A (zh) * 2016-12-30 2017-05-10 智车优行科技(北京)有限公司 显示展示列表中内容的方法和装置、电子设备
CN108401177A (zh) * 2018-02-27 2018-08-14 上海哔哩哔哩科技有限公司 视频播放方法、服务器及视频播放***
CN109089170A (zh) * 2018-09-11 2018-12-25 传线网络科技(上海)有限公司 弹幕显示方法及装置

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
(美)(D.卡尔林斯)DAVID KARLINS著;孙守迁等译: "《CorelDRAW 9 24学时教程》", 30 November 1999, 机械工业出版社 *
SSSSSS1008: "bitmap之相交模式", 《HTTPS://BLOG.CSDN.NET/SSSSSS1008/ARTICLE/DETAILS/53544049》 *
存远: "基于Mask rcnn的行人检测与安卓客户端的移动监控***", 《HTTPS://BLOG.CSDN.NET/INTFLOJX/ARTICLE/DETAILS/83032142》 *
邱陆陆: "爱奇艺蒙版AI:弹幕穿人过,爱豆心中坐", 《HTTPS://WWW.SOHU.COM/A/274725106_129720》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111954060A (zh) * 2019-05-17 2020-11-17 上海哔哩哔哩科技有限公司 弹幕蒙版的渲染方法、计算机设备及可读存储介质
CN111954060B (zh) * 2019-05-17 2022-05-10 上海哔哩哔哩科技有限公司 弹幕蒙版的渲染方法、计算机设备及可读存储介质
CN111698533A (zh) * 2020-06-12 2020-09-22 上海极链网络科技有限公司 一种视频处理方法、装置、设备和存储介质
CN115086738A (zh) * 2022-06-07 2022-09-20 广州博冠信息科技有限公司 信息添加方法、装置、计算机设备及存储介质
CN115086738B (zh) * 2022-06-07 2024-06-11 广州博冠信息科技有限公司 信息添加方法、装置、计算机设备及存储介质

Similar Documents

Publication Publication Date Title
CN109688457A (zh) 一种视频防遮挡方法、装置、电子设备及介质
CN110136229B (zh) 一种用于实时虚拟换脸的方法与设备
TWI490772B (zh) 自繪控制項的螢幕適配方法及裝置
CN109166159B (zh) 获取图像的主色调的方法、装置及终端
CN109710365A (zh) 一种弹幕显示方法、装置、电子设备及介质
CN109102560B (zh) 三维模型渲染方法及装置
CN110286992A (zh) 界面图形重绘的方法及装置
CN110148203B (zh) 游戏中虚拟建筑模型的生成方法、装置、处理器及终端
CN110070551A (zh) 视频图像的渲染方法、装置和电子设备
CN110347317A (zh) 一种窗口切换方法、装置、存储介质及交互智能平板
CN106095437A (zh) 用户界面从右到左rtl的布局方式的实现方法及装置
CN105407323A (zh) 一种监控视频的分屏方法及装置
US10685472B1 (en) Animation brushes
CN110177295A (zh) 字幕越界的处理方法、装置和电子设备
US9177412B2 (en) Techniques for multiple pass rendering
CN111008928A (zh) 一种实现图像雨滴滴落、划动波纹特效的方法及***
US20230405460A1 (en) In-game display controlling method, device and electronic equipment
CN107861711B (zh) 页面适配方法及装置
CN108989872A (zh) 一种安卓电视背景快速切换方法、框架、服务器及存储介质
CN108509137A (zh) 重新定义屏幕的操控显示区域的方法及装置
CN114419322B (zh) 一种图像实例分割方法、装置、电子设备及存储介质
CN110502305B (zh) 一种动态界面的实现方法、装置及相关设备
CN109658495A (zh) 环境光遮蔽效果的渲染方法、装置及电子设备
CN114385061A (zh) 操作方法、装置、电子设备和计算机可读存储介质
CN106775270A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190503