1.一种弹幕渲染方法,其特征在于,包括:
S1,获取弹幕原始数据;
S2,将每一条弹幕原始数据按照相应的预设弹幕样式生成对应的弹幕对象;
S3,当渲染画布Canvas中存在空闲弹道时,将所述弹幕对象插入到所述空闲弹道中,并对所有弹道中的所有弹幕对象进行渲染。
2.如权利要求1所述的弹幕渲染方法,其特征在于,所述步骤S1进一步包括:通过消息监听机制,获取从弹幕服务器传递的弹幕原始数据,并将获取的弹幕原始数据存放入弹幕池中。
3.如权利要求2所述的弹幕渲染方法,其特征在于,所述弹幕池采用JavaScript数组存放弹幕原始数据。
4.如权利要求2所述的弹幕渲染方法,其特征在于,所述弹幕原始数据中携带有对应的弹幕特征数据,事先建立弹幕特征数据与预设弹幕样式之间的对应关系;
所述步骤S2进一步包括:
S21,从弹幕池中获取多条弹幕原始数据,并获取每条弹幕原始数据对应的弹幕特征数据;
S22,根据每条弹幕原始数据的弹幕特征数据以及弹幕特征数据和预设弹幕样式的对应关系,得到每条弹幕原始数据相应的预设弹幕样式;
S23,按照相应的预设弹幕样式,将每一条弹幕原始数据生成对应的弹幕对象,并将生成的所述弹幕对象存放于弹幕队列中。
5.如权利要求4所述的弹幕渲染方法,其特征在于,所述步骤S21进一步包括:按照固定频率从所述弹幕池中提取预定数量的弹幕原始数据。
6.如权利要求5所述的弹幕渲染方法,其特征在于,所述步骤S3中通过如下方式判断渲染画布Canvas中是否存在空闲弹道:配置并启动一渲染线程,在渲染线程中循环渲染画布Canvas中的弹道,获取每一个弹道中最后一个弹幕对象的位置;
当弹道中最后一个弹幕对象的位置与弹幕区域最边缘的距离大于预设距离时,确认渲染画布Canvas中存在空闲弹道,否则,不存在空闲弹道。
7.如权利要求6所述的弹幕渲染方法,其特征在于,所述步骤S3之前还包括:获取渲染画布Canvas的高度以及预设的弹道高度,计算渲染画布Canvas中弹道的数量,并对所有的弹道进行标识;
所述步骤S3中将弹幕对象插入到所述空闲弹道中时,对所述弹幕对象所处的弹道给予标识。
8.一种弹幕渲染装置,其特征在于,包括:
获取模块,用于获取弹幕原始数据;
对象生成模块,用于将每一条弹幕原始数据按照相应的预设弹幕样式生成对应的弹幕对象;
渲染模块,用于当渲染画布Canvas中存在空闲弹道时,将弹幕对象插入到所述空闲弹道中,并对所有弹道中的所有弹幕对象进行渲染。
9.如权利要求8所述的弹幕渲染装置,其特征在于,所述弹幕原始数据中携带有弹幕特征数据,还包括:对应关系建立模块,用于建立弹幕特征数据与预设弹幕样式之间的对应关系;
所述获取模块还用于:
从弹幕池中获取多条弹幕原始数据时,获取每条弹幕原始数据的弹幕特征数据;
所述对象生成模块具体用于:
根据每条弹幕原始数据的弹幕特征数据以及弹幕特征数据和预设弹幕样式的对应关系,得到每条弹幕原始数据对应的预设弹幕样式;以及根据预设弹幕样式,将每一条弹幕原始数据生成对应的弹幕对象,并将生成的所述弹幕对象存放于弹幕队列中。
10.如权利要求9所述的弹幕渲染装置,其特征在于,还包括:判断模块,用于判断渲染画布Canvas中是否存在空闲弹道。