两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種彈幕渲染方法及裝置與流程

文檔序號(hào):11458638閱讀:298來(lái)源:國(guó)知局
一種彈幕渲染方法及裝置與流程

本發(fā)明涉及網(wǎng)頁(yè)渲染領(lǐng)域,更具體地,涉及一種彈幕渲染方法及裝置。



背景技術(shù):

在網(wǎng)頁(yè)渲染領(lǐng)域,基于dom的彈幕渲染技術(shù)是目前大部分彈幕應(yīng)用都在采用的技術(shù),其原理是將彈幕文字封裝到一個(gè)htmldom元素中,再利用javascript將裝載彈幕文字的dom元素放入到html中進(jìn)行渲染,然后對(duì)裝載彈幕文字的dom元素不斷進(jìn)行位置計(jì)算以及改變從而形成移動(dòng)動(dòng)畫(huà)。

采用dom的彈幕渲染技術(shù),由于需要對(duì)所有的dom元素的位置計(jì)算計(jì)算和改變,在彈幕文字量非常大的情況下會(huì)使系統(tǒng)cpu運(yùn)算頻率過(guò)高,內(nèi)存占用過(guò)大,而且彈幕的動(dòng)畫(huà)會(huì)有卡頓現(xiàn)象,尤其在移動(dòng)端上表現(xiàn)的更為明顯。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明提供一種克服上述問(wèn)題或者至少部分地解決上述問(wèn)題的彈幕渲染方法及裝置,解決了基于dom渲染的效率低下、占用內(nèi)存過(guò)大的問(wèn)題。

根據(jù)本發(fā)明的一個(gè)方面,提供了一種彈幕渲染方法,包括:

s1,獲取彈幕原始數(shù)據(jù);

s2,將每一條彈幕原始數(shù)據(jù)按照相應(yīng)的預(yù)設(shè)彈幕樣式生成對(duì)應(yīng)的彈幕對(duì)象;

s3,當(dāng)渲染畫(huà)布canvas中存在空閑彈道時(shí),將所述彈幕對(duì)象插入到所述空閑彈道中,并對(duì)所有彈道中的所有彈幕對(duì)象進(jìn)行渲染。

根據(jù)本發(fā)明的另一個(gè)方面,還提供了一種彈幕渲染裝置,包括:

獲取模塊,用于獲取彈幕原始數(shù)據(jù);

對(duì)象生成模塊,用于將每一條彈幕原始數(shù)據(jù)按照相應(yīng)的預(yù)設(shè)彈幕樣式生成對(duì)應(yīng)的彈幕對(duì)象;

渲染模塊,用于當(dāng)渲染畫(huà)布canvas中存在空閑彈道時(shí),將彈幕對(duì)象插入到所述空閑彈道中,并對(duì)所有彈道中的所有彈幕對(duì)象進(jìn)行渲染。

本發(fā)明的有益效果為:將彈幕原始數(shù)據(jù)生成對(duì)應(yīng)的彈幕對(duì)象,并將彈幕對(duì)象插入到渲染畫(huà)布canvas的彈道中,對(duì)彈道中的所有彈幕對(duì)象一起進(jìn)行渲染,利用html5的canvas功能,每一個(gè)彈幕對(duì)象是一幅圖片,因此在形成彈幕動(dòng)畫(huà)時(shí),只需要改變彈幕對(duì)象圖片對(duì)應(yīng)的位置即可,相比現(xiàn)有的基于dom的渲染需要對(duì)每一個(gè)dom元素中的彈幕文字不斷地進(jìn)行位置計(jì)算以及改變,可增加彈幕繪制的效率,無(wú)需占用過(guò)多的內(nèi)存,使得彈幕動(dòng)畫(huà)在瀏覽器上展示得更為流暢,增加了用戶體驗(yàn)度。

附圖說(shuō)明

圖1為本發(fā)明一個(gè)實(shí)施例的彈幕渲染方法流程圖;

圖2為彈幕對(duì)象生成過(guò)程流程圖;

圖3為彈幕對(duì)象渲染過(guò)程流程圖;

圖4為彈幕渲染方法的整個(gè)工作流程圖;

圖5為本發(fā)明另一個(gè)實(shí)施例的彈幕渲染裝置連接框圖;

圖6為彈幕渲染裝置的總體連接框圖;

圖7為本發(fā)明又一個(gè)實(shí)施例的彈幕渲染裝置的測(cè)試設(shè)備結(jié)構(gòu)框圖。

具體實(shí)施方式

下面結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明的具體實(shí)施方式作進(jìn)一步詳細(xì)描述。以下實(shí)施例用于說(shuō)明本發(fā)明,但不用來(lái)限制本發(fā)明的范圍。

參見(jiàn)圖1,為本發(fā)明一個(gè)實(shí)施例的彈幕渲染方法,主要用于網(wǎng)頁(yè)渲染、動(dòng)畫(huà)制作領(lǐng)域,其中,html5是互聯(lián)網(wǎng)的核心語(yǔ)言,html的第5次重大修改,用于提供網(wǎng)頁(yè)上顯示的內(nèi)容,現(xiàn)在大部分現(xiàn)代瀏覽器都支持html5。對(duì)比html4而言,html5具有原生視音頻支持、原生動(dòng)畫(huà)自持、本地?cái)?shù)據(jù)庫(kù)和socket網(wǎng)絡(luò)套接字等新特性,如今已經(jīng)有很多網(wǎng)站都將技術(shù)轉(zhuǎn)移到了html5。

canvas表示一個(gè)html5畫(huà)布元素,能支持腳本化瀏覽器端繪圖操作。canvas支持互動(dòng),能夠響應(yīng)用戶的操作,比如鼠標(biāo)點(diǎn)擊、鍵盤(pán)按鍵等,還能夠使用canvas制作動(dòng)畫(huà),目前很多網(wǎng)頁(yè)游戲都是基于canvas制作的。canvas還能繪制2d和3d畫(huà)面,在瀏覽器支持方面,只要是支持html5的瀏覽器都會(huì)支持canvas,并且使用canvas技術(shù)制作的游戲或動(dòng)畫(huà)不需要安裝任意瀏覽器插件。

本實(shí)施例提供的彈幕渲染方法主要包括:s1,獲取彈幕原始數(shù)據(jù);s2,將每一條彈幕原始數(shù)據(jù)按照相應(yīng)的預(yù)設(shè)彈幕樣式生成對(duì)應(yīng)的彈幕對(duì)象;s3,當(dāng)渲染畫(huà)布canvas中存在空閑彈道時(shí),將彈幕對(duì)象插入到所述空閑彈道中,并對(duì)所有彈道中的所有彈幕對(duì)象進(jìn)行渲染。

本實(shí)施例將彈幕原始數(shù)據(jù)生成對(duì)應(yīng)的彈幕對(duì)象,并將彈幕對(duì)象插入到渲染畫(huà)布canvas的彈道中,對(duì)彈道中的所有彈幕對(duì)象一起進(jìn)行渲染,利用html5的canvas功能,每一個(gè)彈幕對(duì)象是一幅圖片,因此在形成彈幕動(dòng)畫(huà)時(shí),只需要改變彈幕對(duì)象圖片對(duì)應(yīng)的位置即可,相比現(xiàn)有的基于dom的渲染需要對(duì)每一個(gè)dom元素中的彈幕文字不斷地進(jìn)行位置計(jì)算以及改變,可增加彈幕繪制的效率,無(wú)需占用過(guò)多的內(nèi)存,使得彈幕動(dòng)畫(huà)在瀏覽器上展示得更為流暢,增加了用戶體驗(yàn)度。

在本發(fā)明的一個(gè)實(shí)施例中,上述步驟s1獲取彈幕原始數(shù)據(jù)的過(guò)程為,在瀏覽器中可以設(shè)計(jì)一個(gè)彈幕數(shù)據(jù)獲取線程,通常,彈幕數(shù)據(jù)獲取線程采用websocket封裝,采用websocket技術(shù)與彈幕服務(wù)器進(jìn)行交互來(lái)獲取彈幕服務(wù)器上的彈幕原始數(shù)據(jù)。具體的,創(chuàng)建一個(gè)websocket對(duì)象,通過(guò)消息監(jiān)聽(tīng)機(jī)制,獲取從彈幕服務(wù)器傳遞的彈幕原始數(shù)據(jù),并將獲取的彈幕原始數(shù)據(jù)存放到彈幕池中。其中,彈幕服務(wù)器中的彈幕原始數(shù)據(jù)是具有順序的,彈幕數(shù)據(jù)獲取線程將獲取的彈幕原始數(shù)據(jù)按照原始順序放入彈幕池中。其中,彈幕池采用javascript數(shù)組存放彈幕原始數(shù)據(jù),可以向javascript數(shù)組中增加彈幕原始數(shù)據(jù),也可以從javascript數(shù)組中提取彈幕原始數(shù)據(jù),并將提取后的彈幕原始數(shù)據(jù)進(jìn)行擦除。

在本發(fā)明的另一個(gè)實(shí)施例中,需要說(shuō)明的是,彈幕原始數(shù)據(jù)中攜帶有彈幕特征數(shù)據(jù),比如彈幕發(fā)送者等級(jí)、節(jié)日特征、禮物特征(是否火箭、飛機(jī)、跑車(chē)等)以及發(fā)送者指定的彈幕字體等。在將彈幕原始數(shù)據(jù)生成彈幕對(duì)象時(shí),需要按照某一種樣式進(jìn)行生成,故需要知道彈幕原始數(shù)據(jù)對(duì)應(yīng)的預(yù)設(shè)彈幕樣式。因此,在本實(shí)施例中建立彈幕特征數(shù)據(jù)與預(yù)設(shè)彈幕樣式之間的對(duì)應(yīng)關(guān)系,比如,建立彈幕原始數(shù)據(jù)的發(fā)送者等級(jí)與預(yù)設(shè)彈幕樣式之間的對(duì)應(yīng)關(guān)系。

在上述步驟s2將每一條彈幕原始數(shù)據(jù)按照相應(yīng)的預(yù)設(shè)彈幕樣式生成對(duì)應(yīng)的彈幕對(duì)象的過(guò)程中,按照固定頻率從彈幕池中獲取預(yù)定數(shù)量的彈幕原始數(shù)據(jù),即定時(shí)從彈幕池中提取彈幕原始數(shù)據(jù)。例如,本實(shí)施例中,可以開(kāi)啟一線程以每秒60次的頻率從彈幕池中獲取彈幕原始數(shù)據(jù)。避免由于每次提取的彈幕原始數(shù)據(jù)量過(guò)大影響提取效率,每一個(gè)只從彈幕池中提取預(yù)定數(shù)量的彈幕原始數(shù)據(jù)。

參見(jiàn)圖2,從彈幕池中提取了多條彈幕原始數(shù)據(jù)后,獲取每一條彈幕原始數(shù)據(jù)的彈幕特征數(shù)據(jù),并根據(jù)事先建立的彈幕特征數(shù)據(jù)與預(yù)設(shè)彈幕樣式之間的對(duì)應(yīng)關(guān)系,得到每一條彈幕原始數(shù)據(jù)對(duì)應(yīng)的預(yù)設(shè)彈幕樣式。按照相應(yīng)的預(yù)設(shè)彈幕樣式先將每一條彈幕原始數(shù)據(jù)生成對(duì)應(yīng)的彈幕圖像,然后將彈幕圖像以及彈幕相關(guān)數(shù)據(jù),比如彈幕圖像寬度、彈幕圖像移動(dòng)速度等,封裝成彈幕對(duì)象,并將生成的彈幕對(duì)象存放于彈幕隊(duì)列中。

其中,彈幕對(duì)象是單條彈幕畫(huà)面的封裝,彈幕對(duì)象的屬性信息包括彈幕內(nèi)容和彈幕樣式,彈幕樣式主要包括彈幕字體、彈幕顏色、彈幕字間距、彈幕寬度、彈幕背景,彈幕對(duì)象還包含彈幕移動(dòng)速度和彈幕當(dāng)前所處位置等屬性信息。

在本發(fā)明的一個(gè)實(shí)施例中,步驟s3中進(jìn)行彈幕對(duì)象的渲染時(shí),首先,繪制一渲染畫(huà)布canvas,獲取該渲染畫(huà)布canvas的高度,根據(jù)預(yù)設(shè)的彈道的高度,計(jì)算渲染畫(huà)布canvas中的彈道的數(shù)量,用一數(shù)組來(lái)存儲(chǔ)整個(gè)渲染畫(huà)布canvas中的所有彈道,對(duì)所有的彈道進(jìn)行標(biāo)識(shí),本實(shí)施例中,可以對(duì)所有的彈道進(jìn)行編號(hào)。

隨后,配置一渲染線程,在渲染線程中循環(huán)渲染畫(huà)布canvas中的彈道,獲取每一個(gè)彈道中最后一個(gè)彈幕對(duì)象的位置;當(dāng)彈道中最后一個(gè)彈幕對(duì)象的位置與彈幕區(qū)域最邊緣的距離大于預(yù)設(shè)距離時(shí),確定渲染畫(huà)布canvas中存在空閑彈道,否則,不存在空閑彈道。

在本實(shí)施例中,使用canvas.width–danmaku.getx()-danmaku.getwidth()>100判斷來(lái)尋找空閑彈道,預(yù)設(shè)距離值100是指彈道中最后一個(gè)彈幕對(duì)象的x軸坐標(biāo)離彈幕區(qū)域最右邊的距離。參見(jiàn)圖3,當(dāng)滿足該條件時(shí),表明渲染畫(huà)布canvas中存在空閑彈道,此時(shí),從彈幕隊(duì)列中提取出彈幕對(duì)象,插入空閑彈道中,并對(duì)該彈幕對(duì)象所處的彈道給予編號(hào),即給彈幕對(duì)象設(shè)置當(dāng)前彈道編號(hào)。

按照固定頻率將所有彈道中的所有彈幕對(duì)象渲染到渲染畫(huà)布中,即對(duì)所有彈道中的所有的彈幕對(duì)象進(jìn)行渲染。具體實(shí)現(xiàn)時(shí),可以按照固定頻率檢測(cè)每一個(gè)彈道中是否存在彈幕對(duì)象,如果存在,則對(duì)彈道中的所有彈幕對(duì)象進(jìn)行渲染。canvas彈幕繪制原理為:canvas可以理解為一個(gè)畫(huà)板,無(wú)論這個(gè)畫(huà)板的內(nèi)容是什么,它所生產(chǎn)出來(lái)的都會(huì)是一幅圖片。可以將canvas理解為一個(gè)簡(jiǎn)單的photoshop,無(wú)論是一根線條還是一段文字或者是一張圖片,最后得到的永遠(yuǎn)是一幅圖片。

當(dāng)多個(gè)圖片快速翻動(dòng)時(shí)就形成了動(dòng)畫(huà),所以在canvas上實(shí)現(xiàn)動(dòng)畫(huà),即是一個(gè)不斷擦除和不斷重繪的過(guò)程。把canvas畫(huà)板里的內(nèi)容擦除掉,然后對(duì)原內(nèi)容的位置做一些改變,再重新繪制出來(lái),快速循環(huán)這個(gè)過(guò)程即可以形成動(dòng)畫(huà),動(dòng)畫(huà)中每幀的內(nèi)容就是在canvas中進(jìn)行了重繪的內(nèi)容。

本實(shí)施例在形成canvas動(dòng)畫(huà)的過(guò)程中,先清除整個(gè)canvas畫(huà)布,再循環(huán)整個(gè)彈道,每次循環(huán)時(shí)獲取彈道中的每個(gè)彈幕對(duì)象,計(jì)算彈幕對(duì)象再當(dāng)前幀所處的位置,并繪制每一個(gè)彈幕對(duì)象,在渲染線程中不斷擦除-繪制就形成了彈幕動(dòng)畫(huà)。

參見(jiàn)圖4,為本發(fā)明的另一個(gè)實(shí)施例的彈幕渲染方法的整個(gè)流程圖,首先,在支持html5的瀏覽器中可以配置彈幕數(shù)據(jù)獲取線程、彈幕樣式計(jì)算線程、彈幕對(duì)象生成線程、渲染線程和彈幕調(diào)度線程等。彈幕數(shù)據(jù)獲取線程從彈服務(wù)器中獲取到彈幕原始數(shù)據(jù),并將彈幕原始數(shù)據(jù)存儲(chǔ)于彈幕池中。彈幕樣式計(jì)算線程從彈幕池中提取出彈幕原始數(shù)據(jù),獲取每一條彈幕原始數(shù)據(jù)的彈幕特征數(shù)據(jù),根據(jù)彈幕特征數(shù)據(jù)與預(yù)設(shè)彈幕樣式之間的對(duì)應(yīng)關(guān)系,得到每一條彈幕原始數(shù)據(jù)相應(yīng)的預(yù)設(shè)彈幕樣式。根據(jù)相應(yīng)的預(yù)設(shè)彈幕樣式,將每一條彈幕原始數(shù)據(jù)生成對(duì)應(yīng)的彈幕對(duì)象,并將生成的彈幕對(duì)象存儲(chǔ)于彈幕隊(duì)列中。渲染線程檢測(cè)渲染畫(huà)布canvas中是否存在空閑彈道,若存在空閑彈道,從彈幕隊(duì)列中提取彈幕對(duì)象插入空閑彈道中,并按照一定的頻率將所有彈道中的所有彈幕對(duì)象渲染到渲染畫(huà)布canvas中。其中彈幕調(diào)度線程是每個(gè)線程的統(tǒng)籌地調(diào)度線程,對(duì)其它的每個(gè)線程進(jìn)行統(tǒng)一調(diào)度協(xié)調(diào)。

本實(shí)施例將彈幕原始數(shù)據(jù)生成對(duì)應(yīng)的彈幕對(duì)象,并將彈幕對(duì)象插入到渲染畫(huà)布canvas的彈道中,對(duì)所有彈道中的所有彈幕對(duì)象一起進(jìn)行渲染,利用html5的canvas功能,每一個(gè)彈幕對(duì)象是一幅圖片,因此在形成彈幕動(dòng)畫(huà)時(shí),只需要改變彈幕對(duì)象圖片對(duì)應(yīng)的位置即可,相比現(xiàn)有的基于dom的渲染需要對(duì)每一個(gè)dom元素中的彈幕文字不斷地進(jìn)行位置計(jì)算以及改變,可增加彈幕繪制的效率,無(wú)需占用過(guò)多的內(nèi)存,使得彈幕動(dòng)畫(huà)在瀏覽器上展示得更為流暢,增加了用戶體驗(yàn)度。

參見(jiàn)圖5,為本發(fā)明一個(gè)實(shí)施例的彈幕渲染裝置,包括獲取模塊21、對(duì)象生成模塊22和渲染模塊23。

獲取模塊21,用于獲取彈幕原始數(shù)據(jù);

對(duì)象生成模塊22,用于將每一條彈幕原始數(shù)據(jù)按照相應(yīng)的預(yù)設(shè)彈幕樣式生成對(duì)應(yīng)的彈幕對(duì)象;

渲染模塊23,用于當(dāng)渲染畫(huà)布canvas中存在空閑彈道時(shí),將所述彈幕對(duì)象插入到所述空閑彈道中,并對(duì)所有彈道中的所有彈幕對(duì)象進(jìn)行渲染。

其中,獲取模塊21具體用于:

通過(guò)消息監(jiān)聽(tīng)機(jī)制,獲取從彈幕服務(wù)器傳遞的彈幕原始數(shù)據(jù),并將獲取的彈幕原始數(shù)據(jù)存放入彈幕池中,其中彈幕池采用javascript數(shù)組存放彈幕原始數(shù)據(jù)。

參見(jiàn)圖6,本實(shí)施例提供的彈幕渲染裝置中還包括對(duì)應(yīng)關(guān)系建立模塊24和判斷模塊25。

其中,彈幕原始數(shù)據(jù)中攜帶有彈幕特征數(shù)據(jù),對(duì)應(yīng)關(guān)系建立模塊24,用于預(yù)先建立彈幕特征數(shù)據(jù)與預(yù)設(shè)彈幕樣式之間的對(duì)應(yīng)關(guān)系;

所述獲取模塊21還用于:

從彈幕池中獲取多條彈幕原始數(shù)據(jù)時(shí),獲取每條彈幕原始數(shù)據(jù)的彈幕特征數(shù)據(jù);

所述對(duì)象生成模塊22具體用于:

根據(jù)每條彈幕原始數(shù)據(jù)的彈幕特征數(shù)據(jù)以及彈幕特征數(shù)據(jù)和預(yù)設(shè)彈幕樣式的對(duì)應(yīng)關(guān)系,得到每條彈幕原始數(shù)據(jù)對(duì)應(yīng)的預(yù)設(shè)彈幕樣式;根據(jù)預(yù)設(shè)彈幕樣式,將每一條彈幕原始數(shù)據(jù)生成對(duì)應(yīng)的彈幕對(duì)象,并將生成的彈幕對(duì)象存放于彈幕隊(duì)列中。

判斷模塊25,用于判斷渲染畫(huà)布canvas中是否存在空閑彈道;具體包括:

配置并啟動(dòng)一渲染線程,在渲染線程中循環(huán)彈道,獲取彈道中最后一個(gè)彈幕對(duì)象的位置;

當(dāng)彈道中最后一個(gè)彈幕對(duì)象的位置與彈幕區(qū)域最邊緣的距離大于預(yù)設(shè)距離時(shí),確定渲染畫(huà)布canvas中存在空閑彈道,否則,不存在空閑彈道。

基于上述圖5或圖6對(duì)應(yīng)實(shí)施例所提供的彈幕渲染裝置,本發(fā)明提供了一種彈幕渲染裝置的測(cè)試設(shè)備。參見(jiàn)圖7,該信息管理裝置的測(cè)試設(shè)備包括:處理器(processor)701、存儲(chǔ)器(memory)701、通信接口(communicationsinterface)703和總線704;

其中,處理器701、存儲(chǔ)器702及通信接口703分別通過(guò)總線704完成相互間的通信;

通信接口703用于該測(cè)試設(shè)備與彈幕渲染裝置的通信設(shè)備之間的信息傳輸;

處理器701用于調(diào)用存儲(chǔ)器702中的程序指令,以執(zhí)行上述圖1-圖4對(duì)應(yīng)實(shí)施例所提供的彈幕渲染方法,例如包括:獲取彈幕原始數(shù)據(jù);將每一條彈幕原始數(shù)據(jù)按照相應(yīng)的預(yù)設(shè)彈幕樣式生成對(duì)應(yīng)的彈幕對(duì)象;當(dāng)渲染畫(huà)布canvas中存在空閑彈道時(shí),將所述彈幕對(duì)象插入到所述空閑彈道中,并對(duì)所有彈道中的所有彈幕對(duì)象進(jìn)行渲染。

本發(fā)明公開(kāi)一種計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)程序產(chǎn)品包括存儲(chǔ)在非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上的計(jì)算機(jī)程序,該計(jì)算機(jī)程序包括程序指令,當(dāng)程序指令被計(jì)算機(jī)執(zhí)行時(shí),計(jì)算機(jī)能夠執(zhí)行上述圖1-圖4對(duì)應(yīng)實(shí)施例所提供的彈幕渲染方法,例如包括:獲取彈幕原始數(shù)據(jù);將每一條彈幕原始數(shù)據(jù)按照相應(yīng)的預(yù)設(shè)彈幕樣式生成對(duì)應(yīng)的彈幕對(duì)象;當(dāng)渲染畫(huà)布canvas中存在空閑彈道時(shí),將所述彈幕對(duì)象插入到所述空閑彈道中,并對(duì)所有彈道中的所有彈幕對(duì)象進(jìn)行渲染。

本發(fā)明提供一種非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),該非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)計(jì)算機(jī)指令,該計(jì)算機(jī)指令使計(jì)算機(jī)執(zhí)行上述圖1-圖4對(duì)應(yīng)實(shí)施例所提供的彈幕渲染方法,例如包括:獲取彈幕原始數(shù)據(jù);將每一條彈幕原始數(shù)據(jù)按照相應(yīng)的預(yù)設(shè)彈幕樣式生成對(duì)應(yīng)的彈幕對(duì)象;當(dāng)渲染畫(huà)布canvas中存在空閑彈道時(shí),將所述彈幕對(duì)象插入到所述空閑彈道中,并對(duì)所有彈道中的所有彈幕對(duì)象進(jìn)行渲染。

本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過(guò)程序指令相關(guān)的硬件來(lái)完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:rom、ram、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。

以上所描述的彈幕渲染裝置的測(cè)試設(shè)備等實(shí)施例僅僅是示意性的,其中作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動(dòng)的情況下,即可以理解并實(shí)施。

通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實(shí)施方式可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件。基于這樣的理解,上述技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如rom/ram、磁碟、光盤(pán)等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個(gè)實(shí)施例或者實(shí)施例的某些部分方法。

本發(fā)明提供的一種彈幕渲染方法及裝置,將彈幕原始數(shù)據(jù)生成對(duì)應(yīng)的彈幕對(duì)象,并將彈幕對(duì)象插入到渲染畫(huà)布canvas的彈道中,對(duì)彈道中的所有彈幕對(duì)象一起進(jìn)行渲染,利用html5的canvas功能,每一個(gè)彈幕對(duì)象是一幅圖片,因此在形成彈幕動(dòng)畫(huà)時(shí),只需要改變彈幕對(duì)象圖片對(duì)應(yīng)的位置即可,相比現(xiàn)有的基于dom的渲染需要對(duì)每一個(gè)dom元素中的彈幕文字不斷地進(jìn)行位置計(jì)算以及改變,可增加彈幕繪制的效率,無(wú)需占用過(guò)多的內(nèi)存,使得彈幕動(dòng)畫(huà)在瀏覽器上展示得更為流暢,增加了用戶體驗(yàn)度。

最后,本申請(qǐng)的方法僅為較佳的實(shí)施方案,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
新龙县| 阳江市| 余姚市| 连城县| 黄山市| 当涂县| 盈江县| 阿克苏市| 资阳市| 荣成市| 长海县| 舒兰市| 耒阳市| 南江县| 双鸭山市| 仁化县| 淳安县| 德安县| 婺源县| 北流市| 雷山县| 兴隆县| 淄博市| 衡东县| 乌拉特中旗| 瑞昌市| 涿州市| 叶城县| 宝兴县| 蒲江县| 怀柔区| 梁山县| 改则县| 正镶白旗| 宜黄县| 荣昌县| 东港市| 页游| 克山县| 仙游县| 桐梓县|