CN109714624B - 一种基于QTextEdit的直播弹幕的显示方法及系统 - Google Patents
一种基于QTextEdit的直播弹幕的显示方法及系统 Download PDFInfo
- Publication number
- CN109714624B CN109714624B CN201711008482.5A CN201711008482A CN109714624B CN 109714624 B CN109714624 B CN 109714624B CN 201711008482 A CN201711008482 A CN 201711008482A CN 109714624 B CN109714624 B CN 109714624B
- Authority
- CN
- China
- Prior art keywords
- bullet screen
- barrage
- screen element
- type
- characters
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000012986 modification Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
Images
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本发明提供一种基于QTextEdit的直播弹幕的显示方法及系统,所述方法包括:判断用户输入的每个弹幕元素的类型;根据每个所述弹幕元素的类型分别对每个所述弹幕元素进行统一调整;将统一调整后的每个所述弹幕元素添加至一个QTextBlock中,对所述QTextBlock中的每个所述弹幕元素进行显示。本发明提供的方法和系统,实现了在一条弹幕中混合显示文字、图片和动画,解决了QT原生控件QTextEdit无法实现文字、图片和动画混合显示的问题;同时解决了QT原生控件QTextEdit不支持动画播放的问题;减少了内存占用,有效提高了内存使用效率,有利于提高客户端的整体性能。
Description
技术领域
本发明涉及互联网视频直播技术领域,更具体地,涉及一种基于QTextEdit的直播弹幕的显示方法及系统。
背景技术
随着互联网视频技术的发展,网络视频直播可以一边直播一边将用户的评论信息以弹幕的形式呈现在电脑或者终端面前。使用手机、电脑等终端观看直播视频的用户在这些终端上输入评论数据后,这些终端获取到用户输入的针对直播视频的评论数据,并向弹幕服务器发送评论数据。弹幕服务器根据预设弹幕模型将各个评论数据渲染为弹幕数据后,发送至手机、电脑等终端,使接收弹幕数据的终端在显示视频数据的同时,还将在其屏幕上显示弹幕数据。
QT是一个跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序。Qt Creator 3.1.0实现了全面支持iOS、Android、WP,它提供给应用程序开发者建立艺术级的图形用户界面所需的所有功能。然而,直播弹幕一般都包含文字、图片和动画,当利用QT进行APP开发时,现有的QT原生控件QTextEdit对于文字和图片混合排版的支持度并不高,特别是对于gif动画,QT原生控件QTextEdit无法直接播放动画,进而导致客户端软件无法正常地显示直播弹幕。
有鉴于此,亟待提供一种在QT框架下能够实现文字、图片和动画混合显示的直播弹幕的显示方法。
发明内容
本发明为了克服现有技术中QT原生控件QTextEdit无法实现文字、图片和动画混合显示的问题,提供一种基于QTextEdit的直播弹幕的显示方法及系统。
一方面,本发明提供一种基于QTextEdit的直播弹幕的显示方法,包括:
S1,判断用户输入的每个弹幕元素的类型;
S2,根据每个所述弹幕元素的类型分别对每个所述弹幕元素进行统一调整;
S3,将统一调整后的每个所述弹幕元素添加至一个QTextBlock中,对所述QTextBlock中的每个所述弹幕元素进行显示。
优选地,所述弹幕元素的类型为文字、图片和动画中的至少一种。
优选地,所述步骤S2进一步包括:
设置单个文字的高度基数和宽度基数,基于所述高度基数和宽度基数,根据每个所述弹幕元素的类型分别对每个所述弹幕元素进行统一调整。
优选地,所述步骤S2进一步包括:当所述弹幕元素的类型为文字时,将所述文字的高度统一调整为所述高度基数,将所述文字的宽度统一调整为所述宽度基数。
优选地,所述步骤S2进一步包括:当所述弹幕元素的类型为图片时,将所述图片的高度统一调整为所述高度基数,并对所述图片的宽度进行等比缩放。
优选地,所述步骤S2进一步包括:当所述弹幕元素的类型为动画时,将所述动画中每帧图片的高度统一调整为所述高度基数,并对所述每帧图片的宽度进行等比缩放。
优选地,所述步骤S3还包括:当所述弹幕元素的类型为动画时,通过QMovie类播放所述动画。
优选地,当历史弹幕的数量达到预设阈值时,清空历史QTextBlock。
一方面,本发明提供一种基于QTextEdit的直播弹幕的显示系统,包括:
判断模块,用于判断用户输入的每个弹幕元素的类型;
调整模块,用于根据每个所述弹幕元素的类型分别对每个所述弹幕元素进行统一调整;
显示模块,用于将统一调整后的每个所述弹幕元素添加至一个QTextBlock中,对所述QTextBlock中的每个所述弹幕元素进行显示。
一方面,本发明提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行所述基于QTextEdit的直播弹幕的显示方法。
本发明提供的一种基于QTextEdit的直播弹幕的显示方法及系统,根据用户输入的弹幕元素的类型,对弹幕元素进行统一调整,并将统一调整后的弹幕元素添加至一个QTextBlock中进行显示,实现了在一条弹幕中混合显示文字、图片和动画,解决了QT原生控件QTextEdit无法实现文字、图片和动画混合显示的问题。
附图说明
图1为本发明实施例的一种基于QTextEdit的直播弹幕的显示方法的整体流程示意图;
图2为本发明实施例的一种基于QTextEdit的直播弹幕的显示系统的整体结构示意图;
图3为本发明实施例的一种基于QTextEdit的直播弹幕的显示设备的整体结构示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
图1为本发明实施例的一种基于QTextEdit的直播弹幕的显示方法的整体流程示意图,如图1所示,本发明提供一种基于QTextEdit的直播弹幕的显示方法,包括:
S1,判断用户输入的每个弹幕元素的类型;
S2,根据每个所述弹幕元素的类型分别对每个所述弹幕元素进行统一调整;
S3,将统一调整后的每个所述弹幕元素添加至一个QTextBlock中,对所述QTextBlock中的每个所述弹幕元素进行显示。
具体地,本发明的一种基于QTextEdit的直播弹幕的显示方法是在QtextEdit的基础上实现的,QTextEdit是一种QT原生多行文本框控件,它可以显示多行文本内容,当文本内容超出控件显示范围时,可以显示水平和垂直滚动条。通过设置acceptRichText属性,QTextEdit不仅可以显示文字,还可以显示HTML文档、图像、表格等元素。
然而,QTextEdit无法实现文字、图片和动画的混合显示,为了能够将文本、图片和动画整齐的同时排布在QTextEdit中,本实施例中,引入QTextDocument的QTextBlock元素,QTextDocument为QTextEdit中的可编辑文本的载体,而QTextBlock则为QTextDocument的表现形式,通常表示为一块文本。每一个QTextBlock水平铺满一行,因此要确保每条弹幕的文本、图片和动画属于一个QTextBlock。同时,为了保证弹幕排布整齐,要确保一条弹幕中的每个弹幕元素大小相同,然而在执行QTextBlock插入时并没有提供相应控制大小的属性,因此要在每个弹幕元素插入到QTextBlock之前进行统一调整。
因此,本实施例中,当用户通过客户端输入弹幕元素时,首先判断用户输入的弹幕元素的类型,其中,弹幕元素包括用户输入的文字、图片和动画。用户可以同时输入文字、图片和动画,即该用户对应的弹幕中同时显示文字、图片和动画。此外,用户输入的弹幕元素还可以包括表格等,此处不做具体限定。
进一步地,在判断出用户输入的弹幕元素的类型之后,再根据每个弹幕元素的类型分别对每个弹幕元素进行统一调整。即,若用户同时输入文字、图片和动画,则分别对用户输入的文字、图片和动画进行统一调整,以使得该用户对应的弹幕中的每个弹幕元素大小相同,从而确保弹幕中各弹幕元素排布整齐。
进一步地,将统一调整后的每个弹幕元素添加至一个QTextBlock中,对QTextBlock中的每个弹幕元素进行显示。由于一个QTextBlock对应显示为一条弹幕,通过将统一调整后的每个弹幕元素添加至一个QTextBlock中,即可确保用户输入的文字、图片和动画显示在一条弹幕中,进而实现文字、图片和动画的混合显示。此外,在对QTextBlock中的每个弹幕元素进行显示之前,针对每条弹幕分别使用一个QTextCursor对象的insertText、insertImage、addGifImp方法来实现文本,图像和动画的插入。其中,QTextCursor类用于表示编辑文本中的光标。这个类提供了对QTextDocument文档的修改接口,所有对文档格式的修改,都与光标有关,如改变字符的格式,指的是改变光标处字符的格式;改变段落的格式,指的是改变光标所在段落的格式,因此,QTextCursor类在文档编辑类程序中有着重要的作用,所有对QTextDocument的修改能够通过QTextCursor类实现。
本发明提供的一种基于QTextEdit的直播弹幕的显示方法,根据用户输入的弹幕元素的类型,对弹幕元素进行统一调整,并将统一调整后的弹幕元素添加至一个QTextBlock中进行显示,实现了在一条弹幕中混合显示文字、图片和动画,解决了QT原生控件QTextEdit无法实现文字、图片和动画混合显示的问题。
基于上述任一实施例,提供一种基于QTextEdit的直播弹幕的显示方法,所述弹幕元素的类型为文字、图片和动画中的至少一种。
具体地,用户在观看网络视频直播时,可以通过客户端输入评论信息,即最终显示为用户对应的弹幕,一条弹幕中可以包括多个弹幕元素,弹幕元素的类型为文字、图片和动画中的至少一种,即用户输入的评论信息可以为单纯的文字或图片或动画,也可以为文字、图片和动画的任意组合。当用户同时输入文字、图片和动画时,则可实现在该用户对应的弹幕中混合显示文字、图片和动画。此外,弹幕元素的类型还可以包括表格等,此处不做具体限定。
本发明提供的一种基于QTextEdit的直播弹幕的显示方法,弹幕元素的类型为文字、图片和动画中的至少一种,使得用户在一条弹幕中能够同时输入文字、图片和动画,进而实现在一条弹幕中混合显示文字、图片和动画,解决了QT原生控件QTextEdit无法实现文字、图片和动画混合显示的问题,有效提升了用户体验。
基于上述任一实施例,提供一种基于QTextEdit的直播弹幕的显示方法,所述步骤S2进一步包括:设置单个文字的高度基数和宽度基数,基于所述高度基数和宽度基数,根据每个所述弹幕元素的类型分别对每个所述弹幕元素进行统一调整。
具体的地,为了保证弹幕排布整齐,要确保一条弹幕中的每个弹幕元素大小相同,故而需对每个弹幕元素进行统一调整。本实施例中,首先设置单个文字的高度基数和宽度基数,各个类型的弹幕元素的高度和宽度则可基于高度基数和宽度基数进行统一调整。当用户同时输入文字、图片和动画时,则可基于高度基数和宽度基数分别对文字、图片和动画的高度和宽度进行统一调整,以使得同一弹幕中文字、图片和动画排布整齐,进而实现同一弹幕中文字、图片和动画的混合显示。
本发明提供的一种基于QTextEdit的直播弹幕的显示方法,通过设置单个文字的高度基数和宽度基数,基于高度基数和宽度基数,根据每个弹幕元素的类型分别对每个弹幕元素进行统一调整,确保了弹幕中文字、图片和动画的整齐排布,实现了在一条弹幕中混合显示文字、图片和动画,解决了QT原生控件QTextEdit无法实现文字、图片和动画混合显示的问题。
基于上述任一实施例,提供一种基于QTextEdit的直播弹幕的显示方法,所述步骤S2进一步包括:当所述弹幕元素的类型为文字时,将所述文字的高度统一调整为所述高度基数,将所述文字的宽度统一调整为所述宽度基数。
具体地,本实施例中,首先设置了单个文字的高度基数和宽度基数,在此基础上,当用户输入的弹幕元素的类型为文字时,则调用设置文本格式接口,根据高度基数和宽度基数,将用户输入的文字的高度统一调整为高度基数,并将用户输入的文字的宽度统一调整为宽度基数,以实现对用户输入的文字的统一调整,确保用户输入的文字在插入QTextEdit之前大小一致,进而确保弹幕中文字排布整齐。此外,通过调用设置文本格式接口,还可以对文字的字型、颜色和粗细以及其他特性进行全面调整,进而保持弹幕文字的一致性。
本发明提供的一种基于QTextEdit的直播弹幕的显示方法,当弹幕元素的类型为文字时,将文字的高度统一调整为高度基数,将文字的宽度统一调整为宽度基数,确保了弹幕中文字的整齐排布,进而实现在一条弹幕中混合显示文字、图片和动画,解决了QT原生控件QTextEdit无法实现文字、图片和动画混合显示的问题。
基于上述任一实施例,提供一种基于QTextEdit的直播弹幕的显示方法,所述步骤S2进一步包括:当所述弹幕元素的类型为图片时,将所述图片的高度统一调整为所述高度基数,并对所述图片的宽度进行等比缩放。
具体地,本实施例中,首先设置了单个文字的高度基数和宽度基数,在此基础上,当用户输入的弹幕元素的类型为图片时,则调用设置图片大小的接口,主要是通过QImage的scaled函数进行实现,根据高度基数和宽度基数,将用户输入的图片的高度统一调整为高度基数,并根据图片的实际高度和实际宽度,对图片的宽度进行等比缩放,将图片的宽度等比缩放为宽度基数的整数倍,以实现对用户输入的图片的统一调整,确保用户输入的图片在插入QTextEdit之前大小一致,进而确保弹幕中图片排布整齐。例如,若单个文字的高度基数和宽度基数分别为2和4,用户输入的图片的实际高度和宽度分别为8和32,则在对用户输入的图片进行统一调整时,将用户输入图片的高度统一调整为高度基数,也即统一调整为2,由此可知,调整后的高度相较于实际高度缩小了4倍,进而对图片的宽度进行等比缩放,也即将用户输入的图片的实际宽度同样缩小4倍,则调整后的图片宽度为8。鉴于图片的高度和宽度的比例是一致的,故而调整后的图片宽度即为宽度基数的整数倍,上述示例中,调整后的图片宽度为8,而宽度基数为4,即调整后的图片宽度为宽度基数的2倍。
本发明提供的一种基于QTextEdit的直播弹幕的显示方法,当弹幕元素的类型为图片时,将图片的高度统一调整为高度基数,并对图片的宽度进行等比缩放,确保了弹幕中图片的整齐排布,进而实现了一条弹幕中混合显示文字、图片和动画,解决了QT原生控件QTextEdit无法实现文字、图片和动画混合显示的问题。
基于上述任一实施例,提供一种基于QTextEdit的直播弹幕的显示方法,所述步骤S2进一步包括:当所述弹幕元素的类型为动画时,将所述动画中每帧图片的高度统一调整为所述高度基数,并对所述每帧图片的宽度进行等比缩放。
具体地,鉴于无法直接设置整个动画的大小,本实施例中通过设置动画中每一帧图片的大小,保证每一帧图片大小都是相同的,进而确保动画大小的一致性。首先设置了单个文字的高度基数和宽度基数,在此基础上,当用户输入的弹幕元素的类型为动画时,则调用设置动画大小的接口,主要是通过QImage的scaled函数进行实现,根据高度基数和宽度基数,将用户输入的动画中每帧图片的高度统一调整为高度基数,并根据图片的实际高度和实际宽度,对每帧图片的宽度进行等比缩放,将每帧图片的宽度等比缩放为宽度基数的整数倍,以实现对用户输入的动画的统一调整,确保用户输入的动画在插入QTextEdit之前大小一致,进而确保弹幕中动画排布整齐。
本发明提供的一种基于QTextEdit的直播弹幕的显示方法,当弹幕元素的类型为动画时,将动画中每帧图片的高度统一调整为高度基数,并对每帧图片的宽度进行等比缩放,确保了弹幕中动画的整齐排布,进而实现了一条弹幕中混合显示文字、图片和动画,解决了QT原生控件QTextEdit无法实现文字、图片和动画混合显示的问题。
基于上述任一实施例,提供一种基于QTextEdit的直播弹幕的显示方法,所述步骤S3还包括:当所述弹幕元素的类型为动画时,通过QMovie类播放所述动画。
具体地,由于QTextEdit虽然可以插入图片,但无法直接播放动画gif,在QTextEdit中播放gif需要手动换帧。本实施例中,当弹幕元素的类型为动画时,通过QMovie类播放动画。QMovie内置了gif解析和定时器功能,因此可以通过QMovie类来解析gif文件,然后使用QTextDocument的addResource方法把图片资源加载进来,最后通过QMovie的定时器功能,不断更新图片资源,达到播放动画的效果。具体方法如下:首先通过QFile类的对象gifFile读取gif动画;再利用gifFile文件初始化QMovie对象gifMovie;设置QMovie大小;通过addResourc方法将QMovie解析过的图片进行定时加载,其中定时加载的功能是由QMovie的定时器和frameChanged信号共同实现的;最后进行刷新显示。
上述方法对应的程序代码实现如下:
QFile*gifFile=new QFile(gifName);
gifMovie->setFileName(gifFile);
gifMovie->setScaledSize(QSize(width,height));
document()->addResource(QTextDocument::ImageResource,urls.value(gifMovie),gifMovie->currentPixmap());
connect(gifMovie,QMovie::frameChanged(int),gifAnimate(int));
setLineWrapColumnOrWidth(lineWrapColumnOrWidth())
本发明提供的一种基于QTextEdit的直播弹幕的显示方法,当用户输入的弹幕元素的类型为动画时,通过QMovie类播放动画,解决了QT原生控件QTextEdit不支持动画播放的问题,进而实现了弹幕中的文字、图片和动画的混合显示。
基于上述任一实施例,提供一种基于QTextEdit的直播弹幕的显示方法,当历史弹幕的数量达到预设阈值时,清空历史QTextBlock。
具体地,本实施例中,预先设置了弹幕的数量阈值,当历史弹幕的数量达到预设阈值时,则对历史弹幕进行清理,由于一条弹幕对应一个QTextBlock,故而,当历史弹幕的数量达到预设阈值时,则清空历史QTextBlock,从而有效减少内存占用,提高整体运行效率。
其中,由于弹幕中的动画是通过QMovie类进行播放的,在通过QMovie类播放动画时,利用gifFile文件初始化QMovie对象gifMovie,与此同时,将gifMovie保存到列表gifMovieVector中,以供使用完成后及时删除。
本发明提供的一种基于QTextEdit的直播弹幕的显示方法,当历史弹幕的数量达到预设阈值时,清空历史QTextBlock,减少了内存占用,有效提高了内存使用效率,有利于提高客户端的整体性能。
图2为本发明实施例的一种基于QTextEdit的直播弹幕的显示系统的整体结构示意图,如图2所示,基于上述任一实施例,提供一种基于QTextEdit的直播弹幕的显示系统,包括:判断模块1,用于判断用户输入的每个弹幕元素的类型;调整模块2,用于根据每个所述弹幕元素的类型分别对每个所述弹幕元素进行统一调整;显示模块3,用于将统一调整后的每个所述弹幕元素添加至一个QTextBlock中,对所述QTextBlock中的每个所述弹幕元素进行显示。
具体地,本实施例的系统用于执行上述任一实施例中的方法,该系统在实际工作中,当用户通过客户端输入弹幕元素时,首先判断模块1判断用户输入的弹幕元素的类型,其中,弹幕元素包括用户输入的文字、图片和动画。用户可以同时输入文字、图片和动画,即该用户对应的弹幕中同时显示文字、图片和动画。此外,用户输入的弹幕元素还可以包括表格等,此处不做具体限定。
进一步地,在判断模块1判断出用户输入的弹幕元素的类型之后,再由调整模块2根据每个弹幕元素的类型分别对每个弹幕元素进行统一调整。即,若用户同时输入文字、图片和动画,则分别对用户输入的文字、图片和动画进行统一调整,以使得该用户对应的弹幕中的每个弹幕元素大小相同,从而确保弹幕中各弹幕元素排布整齐。
进一步地,通过显示模块3将统一调整后的每个弹幕元素添加至一个QTextBlock中,对QTextBlock中的每个弹幕元素进行显示。由于一个QTextBlock对应显示为一条弹幕,通过将统一调整后的每个弹幕元素添加至一个QTextBlock中,即可确保用户输入的文字、图片和动画显示在一条弹幕中,进而实现文字、图片和动画的混合显示。此外,在对QTextBlock中的每个弹幕元素进行显示之前,针对每条弹幕分别使用一个QTextCursor对象的insertText、insertImage、addGifImp方法来实现文本,图像和动画的插入。其中,QTextCursor类用于表示编辑文本中的光标。这个类提供了对QTextDocument文档的修改接口,所有对文档格式的修改,都与光标有关,如改变字符的格式,指的是改变光标处字符的格式;改变段落的格式,指的是改变光标所在段落的格式,因此,QTextCursor类在文档编辑类程序中有着重要的作用,所有对QTextDocument的修改能够通过QTextCursor类实现。
本发明提供的一种基于QTextEdit的直播弹幕的显示系统,通过判断模块判断用户输入的弹幕元素的类型,再由调整模块根据用户输入的弹幕元素的类型,对弹幕元素进行统一调整,最后通过显示模块将统一调整后的弹幕元素添加至一个QTextBlock中进行显示,实现了在一条弹幕中混合显示文字、图片和动画,解决了QT原生控件QTextEdit无法实现文字、图片和动画混合显示的问题。
图3为本发明实施例的一种基于QTextEdit的直播弹幕的显示设备的整体结构示意图,如图3所示,基于上述任一实施例,提供一种基于QTextEdit的直播弹幕的显示设备,该设备包括:至少一个处理器31、至少一个存储器32和总线33;其中,
所述处理器31和存储器32通过所述总线33完成相互间的通信;
所述存储器32存储有可被所述处理器31执行的程序指令,所述处理器31调用所述程序指令能够执行上述各方法实施例所提供的方法,例如包括:S1,判断用户输入的每个弹幕元素的类型;S2,根据每个所述弹幕元素的类型分别对每个所述弹幕元素进行统一调整;S3,将统一调整后的每个所述弹幕元素添加至一个QTextBlock中,对所述QTextBlock中的每个所述弹幕元素进行显示。
基于上述任一实施例,例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:S1,判断用户输入的每个弹幕元素的类型;S2,根据每个所述弹幕元素的类型分别对每个所述弹幕元素进行统一调整;S3,将统一调整后的每个所述弹幕元素添加至一个QTextBlock中,对所述QTextBlock中的每个所述弹幕元素进行显示。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的基于QTextEdit的直播弹幕的显示设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
综上所述,本发明提供的一种基于QTextEdit的直播弹幕的显示方法及系统,根据用户输入的弹幕元素的类型,对弹幕元素进行统一调整,并将统一调整后的弹幕元素添加至一个QTextBlock中进行显示,实现了在一条弹幕中混合显示文字、图片和动画,解决了QT原生控件QTextEdit无法实现文字、图片和动画混合显示的问题;同时通过QMovie类播放动画,解决了QT原生控件QTextEdit不支持动画播放的问题;并当历史弹幕的数量达到预设阈值时,清空历史QTextBlock,减少了内存占用,有效提高了内存使用效率,有利于提高客户端的整体性能。
最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种基于QTextEdit的直播弹幕的显示方法,其特征在于,包括:
S1,判断用户输入的每个弹幕元素的类型,所述弹幕元素的类型为文字、图片和动画中的至少一种;
S2,根据每个所述弹幕元素的类型分别对每个所述弹幕元素进行统一调整;
S3,将统一调整后的每个所述弹幕元素添加至一个QTextBlock中,对所述QTextBlock中的每个所述弹幕元素进行显示;
所述QTextBlock对应显示为一条弹幕;
所述统一调整具体为:调整每个所述弹幕元素大小相同。
2.根据权利要求1所述的方法,其特征在于,所述步骤S2进一步包括:
设置单个文字的高度基数和宽度基数,基于所述高度基数和宽度基数,根据每个所述弹幕元素的类型分别对每个所述弹幕元素进行统一调整。
3.根据权利要求2所述的方法,其特征在于,所述步骤S2进一步包括:当所述弹幕元素的类型为文字时,将所述文字的高度统一调整为所述高度基数,将所述文字的宽度统一调整为所述宽度基数。
4.根据权利要求2所述的方法,其特征在于,所述步骤S2进一步包括:当所述弹幕元素的类型为图片时,将所述图片的高度统一调整为所述高度基数,并对所述图片的宽度进行等比缩放。
5.根据权利要求2所述的方法,其特征在于,所述步骤S2进一步包括:当所述弹幕元素的类型为动画时,将所述动画中每帧图片的高度统一调整为所述高度基数,并对所述每帧图片的宽度进行等比缩放。
6.根据权利要求1所述的方法,其特征在于,所述步骤S3还包括:当所述弹幕元素的类型为动画时,通过QMovie类播放所述动画。
7.根据权利要求1所述的方法,其特征在于,当历史弹幕的数量达到预设阈值时,清空历史QTextBlock。
8.一种基于QTextEdit的直播弹幕的显示系统,其特征在于,包括:
判断模块,用于判断用户输入的每个弹幕元素的类型,所述弹幕元素的类型为文字、图片和动画中的至少一种;
调整模块,用于根据每个所述弹幕元素的类型分别对每个所述弹幕元素进行统一调整;
显示模块,用于将统一调整后的每个所述弹幕元素添加至一个QTextBlock中,对所述QTextBlock中的每个所述弹幕元素进行显示;
所述QTextBlock对应显示为一条弹幕;
所述统一调整具体为:调整每个所述弹幕元素大小相同。
9.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711008482.5A CN109714624B (zh) | 2017-10-25 | 2017-10-25 | 一种基于QTextEdit的直播弹幕的显示方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711008482.5A CN109714624B (zh) | 2017-10-25 | 2017-10-25 | 一种基于QTextEdit的直播弹幕的显示方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109714624A CN109714624A (zh) | 2019-05-03 |
CN109714624B true CN109714624B (zh) | 2021-11-09 |
Family
ID=66252079
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711008482.5A Expired - Fee Related CN109714624B (zh) | 2017-10-25 | 2017-10-25 | 一种基于QTextEdit的直播弹幕的显示方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109714624B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114115777A (zh) * | 2021-11-19 | 2022-03-01 | 武汉虹信技术服务有限责任公司 | 一种基于安卓系统的增强文本显示方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10440329B2 (en) * | 2009-05-22 | 2019-10-08 | Immersive Media Company | Hybrid media viewing application including a region of interest within a wide field of view |
KR101715971B1 (ko) * | 2009-10-20 | 2017-03-13 | 야후! 인크. | 키워드 및 스트링 입력에 기초한 애니메이트된 미디어를 어셈블링하는 방법 및 시스템 |
CN104951202B (zh) * | 2014-03-28 | 2019-06-07 | 腾讯科技(深圳)有限公司 | 一种显示聊天内容的方法及装置 |
CN103942314B (zh) * | 2014-04-22 | 2018-01-02 | 重庆市科学技术研究院 | 一种html文件图文混排显示方法 |
CN105933783B (zh) * | 2016-05-16 | 2019-07-26 | 北京三快在线科技有限公司 | 一种弹幕的播放方法、装置和终端设备 |
CN106210849A (zh) * | 2016-06-27 | 2016-12-07 | 乐视控股(北京)有限公司 | 一种弹幕信息处理方法及装置 |
CN106341723A (zh) * | 2016-09-30 | 2017-01-18 | 广州华多网络科技有限公司 | 一种弹幕显示方法及装置 |
CN106534875A (zh) * | 2016-11-09 | 2017-03-22 | 广州华多网络科技有限公司 | 弹幕显示控制方法、装置及终端 |
CN106973309A (zh) * | 2017-03-27 | 2017-07-21 | 福建中金在线信息科技有限公司 | 一种弹幕生成方法及装置 |
-
2017
- 2017-10-25 CN CN201711008482.5A patent/CN109714624B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN109714624A (zh) | 2019-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8683341B2 (en) | Multimedia presentation editor for a small-display communication terminal or computing device | |
CN103823620B (zh) | 一种屏幕适配的方法和装置 | |
CN107615770B (zh) | 应用程序的处理方法及终端设备 | |
CN105653254B (zh) | 原生界面适配方法、装置及应用其的电子设备 | |
EP4044604A1 (en) | Video special effect processing method and apparatus, and electronic device | |
CN110764850A (zh) | 界面显示方法、参数赋值方法、系统及设备 | |
CN105786513A (zh) | 基于Html5的混合移动应用开发方法 | |
CN106168874B (zh) | 一种基于网页的彩信编辑方法和装置 | |
CN109874048B (zh) | 视频窗口组件半透明显示方法、装置以及计算机设备 | |
EP2874054B1 (en) | Application text adjusting method, device, and terminal | |
CN113411664B (zh) | 基于子应用的视频处理方法、装置和计算机设备 | |
CN104820589A (zh) | 一种动态适配网页的方法及其装置 | |
EP3061214B1 (en) | Method and apparatus for displaying image | |
US20240312101A1 (en) | Video processing method and apparatus, and non-transitory computer-readable storage medium | |
US20240143898A1 (en) | Content typesetting method and apparatus, computer device, and storage medium | |
CN109714624B (zh) | 一种基于QTextEdit的直播弹幕的显示方法及系统 | |
CN115510347A (zh) | 演示文稿的转换方法、装置、电子设备及存储介质 | |
CN110198420B (zh) | 基于非线性视频编辑的视频生成方法及装置 | |
CN109660852B (zh) | 录制视频发布前的视频预览方法、存储介质、设备及系统 | |
CN113254131A (zh) | 一种页面背景展示方法及装置 | |
CN108717347B (zh) | 商业信息交互识别方法、装置和电子设备 | |
CN111199138A (zh) | 使用QML对含Emoji表情弹幕描边方法、系统、服务器及存储介质 | |
CN114386369A (zh) | 一种文本处理方法、装置、电子设备和介质 | |
CN113656020A (zh) | 一种基于ReactNative的图片展示组件开发方法及相关组件 | |
CN111522609A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20211109 |