本申請涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別涉及一種彈幕信息的處理方法及客戶端。
背景技術(shù):
隨著彈幕(barrage)技術(shù)的興起,用戶在觀看視頻時,通常可以發(fā)表針對視頻內(nèi)容的評論或者自身的感想,這些評論或者感想可以直接顯示于視頻的播放界面中。當(dāng)前,這些在視頻播放界面中出現(xiàn)的由用戶發(fā)表的文字信息便可以作為彈幕信息。
對于視頻播放網(wǎng)站中的點(diǎn)播視頻而言,用戶在加載某個視頻時,可以同時加載該視頻關(guān)聯(lián)的彈幕信息,這些彈幕信息可以是之前的用戶在觀看視頻時發(fā)表的。此外,對于視頻直播平臺中的直播視頻而言,用戶觀看的是實(shí)時的視頻信息,因此在直播視頻中展示的彈幕信息可以是當(dāng)前正在觀看視頻的用戶發(fā)表的。
當(dāng)前,用戶可以通過在彈幕輸入框中輸入相應(yīng)的文字信息,然后點(diǎn)擊發(fā)送的按鍵,從而可以完成發(fā)表彈幕的過程。在現(xiàn)有技術(shù)中,用戶發(fā)表的彈幕通常會與時間信息相綁定,該時間信息可以是用戶客戶端的本地時間,也可以是用戶正在觀看的視頻的播放時間。該時間信息可以用于確定用戶發(fā)表的彈幕在視頻中出現(xiàn)的時刻。例如,在視頻播放至5分09秒時,用戶點(diǎn)擊了發(fā)送按鍵發(fā)送了一條彈幕,那么該彈幕就可以出現(xiàn)在視頻播放的5分09秒處。
目前,用戶發(fā)表的彈幕綁定的時間信息,通常是在用戶點(diǎn)擊發(fā)送按鍵的時刻記錄的。但是,用戶點(diǎn)擊發(fā)送按鍵的時刻與用戶當(dāng)時想要發(fā)表彈幕的時刻之間其實(shí)會存在一定的延時,該延時的時長通??梢匀Q于用戶輸入文字信息的速度。用戶輸入文字信息越慢,產(chǎn)生的延時便會越久。例如,用戶在當(dāng)前視頻中看到精彩的鏡頭時開始發(fā)表彈幕,但是等到彈幕編輯完之后,該精彩的鏡頭可能已經(jīng)消失了。這樣,用戶實(shí)際發(fā)表的彈幕便無法與當(dāng)前的視頻內(nèi)容同步。
技術(shù)實(shí)現(xiàn)要素:
本申請實(shí)施方式的目的是提供一種彈幕信息的處理方法及客戶端,能夠使得用戶發(fā)表的彈幕與視頻內(nèi)容同步。
為實(shí)現(xiàn)上述目的,本申請實(shí)施方式提供一種彈幕信息的處理方法,所述彈幕信息通過視頻播放頁面中的彈幕操作區(qū)域錄入,所述方法包括:檢測是否有施加于所述彈幕操作區(qū)域中的指定動作,當(dāng)在所述彈幕操作區(qū)域中檢測到所述指定動作時,記錄所述指定動作發(fā)生時的時間節(jié)點(diǎn);獲取在所述彈幕操作區(qū)域中錄入的所述彈幕信息,并將所述彈幕信息與所述時間節(jié)點(diǎn)相綁定;將相綁定的所述彈幕信息與所述時間節(jié)點(diǎn)發(fā)送至服務(wù)器,以使得所述服務(wù)器按照所述時間節(jié)點(diǎn)將所述彈幕信息插入彈幕數(shù)據(jù)中。
為實(shí)現(xiàn)上述目的,本申請實(shí)施方式還提供一種客戶端,所述客戶端包括處理器和存儲器,其中,所述存儲器中存儲有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被所述處理器執(zhí)行時,實(shí)現(xiàn)以下步驟:檢測是否有施加于彈幕操作區(qū)域中的指定動作,當(dāng)在所述彈幕操作區(qū)域中檢測到所述指定動作時,記錄所述指定動作發(fā)生時的時間節(jié)點(diǎn);獲取在所述彈幕操作區(qū)域中錄入的彈幕信息,并將所述彈幕信息與所述時間節(jié)點(diǎn)相綁定;將相綁定的所述彈幕信息與所述時間節(jié)點(diǎn)發(fā)送至服務(wù)器,以使得所述服務(wù)器按照所述時間節(jié)點(diǎn)將所述彈幕信息插入彈幕數(shù)據(jù)中。
由上可見,在本申請中,可以預(yù)先在彈幕操作區(qū)域中定義一些指定動作,這些指定動作可以表征用戶正準(zhǔn)備執(zhí)行發(fā)表彈幕的操作。這樣,當(dāng)在彈幕操作區(qū)域中檢測到所述指定動作時,便可以記錄該指定動作發(fā)生時的時間節(jié)點(diǎn)。該時間節(jié)點(diǎn)便可以是用戶準(zhǔn)備發(fā)表彈幕的時間節(jié)點(diǎn)。當(dāng)用戶在彈幕操作區(qū)域中錄入彈幕信息后,客戶端可以將該彈幕信息與之前記錄的時間節(jié)點(diǎn)相綁定。在客戶端將綁定的時間節(jié)點(diǎn)和彈幕信息發(fā)送至服務(wù)器之后,服務(wù)器便可以按照時間節(jié)點(diǎn),將彈幕信息插入彈幕數(shù)據(jù)中。這樣,盡管用戶在輸入彈幕信息時可能耽誤了一段時間,但該彈幕信息在實(shí)際播出時,是在先前記錄的時間節(jié)點(diǎn)處播放,從而使得該彈幕信息能夠與視頻內(nèi)容進(jìn)行同步播放。
附圖說明
為了更清楚地說明本申請實(shí)施方式或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施方式或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請中記載的一些實(shí)施方式,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本申請實(shí)施方式中彈幕信息的處理方法流程圖;
圖2為本申請實(shí)施方式中客戶端界面的第一示意圖;
圖3為本申請實(shí)施方式中時間軸的示意圖;
圖4為本申請實(shí)施方式中客戶端界面的第二示意圖;
圖5為本申請實(shí)施方式中插入彈幕信息的示意圖;
圖6為本申請實(shí)施方式中取消時間節(jié)點(diǎn)的界面圖;
圖7為本申請實(shí)施方式中時間節(jié)點(diǎn)選擇列表的示意圖;
圖8為本申請實(shí)施方式中的客戶端的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本申請中的技術(shù)方案,下面將結(jié)合本申請實(shí)施方式中的附圖,對本申請實(shí)施方式中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施方式僅僅是本申請一部分實(shí)施方式,而不是全部的實(shí)施方式?;诒旧暾堉械膶?shí)施方式,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施方式,都應(yīng)當(dāng)屬于本申請保護(hù)的范圍。
本申請?zhí)峁┮环N彈幕信息的處理方法,所述方法可以應(yīng)用于客戶端與服務(wù)器的系統(tǒng)架構(gòu)中。其中,所述服務(wù)器可以指視頻播放網(wǎng)站的后臺服務(wù)器。所述視頻播放網(wǎng)站例如可以是愛奇藝、搜狐視頻、acfun等。在本實(shí)施方式中并不具體限定所述服務(wù)器的數(shù)量。所述服務(wù)器可以為一個服務(wù)器,還可以為幾個服務(wù)器,或者,若干服務(wù)器形成的服務(wù)器集群。
所述客戶端可以是具備網(wǎng)絡(luò)通信功能、數(shù)據(jù)處理功能以及圖像顯示功能的電子設(shè)備。所述電子設(shè)備例如可以是臺式電腦、平板電腦、筆記本電腦、智能手機(jī)、數(shù)字助理、智能可穿戴設(shè)備、導(dǎo)購終端、智能電視機(jī)等。當(dāng)然,所述客戶端還可以是在上述電子設(shè)備中運(yùn)行的軟件。所述軟件可以是具備視頻制作功能或者視頻播放功能的軟件。例如,所述軟件可以是安裝于智能手機(jī)上的應(yīng)用(application,app)。
本申請?zhí)峁┮环N彈幕信息的處理方法,所述方法的執(zhí)行主體可以是所述客戶端。在所述客戶端的視頻播放頁面中通常包括視頻播放區(qū)域,所述視頻播放區(qū)域中可以播放用戶當(dāng)前正在觀看的視頻。此外,在所述視頻播放頁面中,還可以包含與所述視頻播放區(qū)域相對應(yīng)的彈幕操作區(qū)域。所述彈幕操作區(qū)域可以與用戶進(jìn)行交互,接收用戶輸入的彈幕信息,并且響應(yīng)于用戶下達(dá)的發(fā)送指令,將彈幕信息通過客戶端發(fā)送至視頻播放網(wǎng)站的服務(wù)器處。請參閱圖1,所述彈幕信息的處理方法可以包括以下步驟。
s1:檢測是否有施加于所述彈幕操作區(qū)域中的指定動作,當(dāng)在所述彈幕操作區(qū)域中檢測到所述指定動作時,記錄所述指定動作發(fā)生時的時間節(jié)點(diǎn)。
在本實(shí)施方式中,用戶與所述彈幕操作區(qū)域之間可以具備多種交互方式。例如,當(dāng)所述客戶端為帶有觸摸屏的電子設(shè)備時,用戶與所述彈幕操作區(qū)域之間的交互方式可以是用手指點(diǎn)擊彈幕。又例如,當(dāng)所述客戶端為帶有鼠標(biāo)、鍵盤、觸控筆等外部輸入設(shè)備的電子設(shè)備時,用戶與所述彈幕操作區(qū)域之間的交互方式可以是通過外部輸入設(shè)備向所述彈幕操作區(qū)域傳遞控制信號。例如,可以用鼠標(biāo)或者觸控筆點(diǎn)擊彈幕操作區(qū)域,還可以通過鍵盤的方向鍵選擇彈幕操作區(qū)域中的控件。
在本實(shí)施方式中,所述指定動作便可以是用戶通過上述交互方式施加于所述彈幕操作區(qū)域中的。所述指定動作可以表征用戶正準(zhǔn)備執(zhí)行發(fā)表彈幕的操作。在實(shí)際應(yīng)用場景中,所述指定動作可以具備多種形式。
請參閱圖2,在本申請一個實(shí)施方式中,在所述彈幕操作區(qū)域中可以設(shè)置有用于表征按照當(dāng)前時刻發(fā)送彈幕的控件。所述控件例如可以是標(biāo)注有“按當(dāng)前時刻發(fā)送彈幕”字樣的按鍵。這樣,施加于所述彈幕操作區(qū)域中的指定動作便可以是所述用于表征按照當(dāng)前時刻發(fā)送彈幕的控件被觸發(fā)。例如,當(dāng)所述標(biāo)注有“按當(dāng)前時刻發(fā)送彈幕”字樣的按鍵被點(diǎn)擊時,便可以視為所述指定動作被觸發(fā)。
在本申請一個實(shí)施方式中,為了使得用戶能夠根據(jù)自身的意愿靈活地設(shè)置發(fā)送彈幕信息的時機(jī),當(dāng)所述用于表征按照當(dāng)前時刻發(fā)送彈幕的控件被觸發(fā)時,可以在所述彈幕操作區(qū)域中展示與視頻內(nèi)容相適配的時間軸。請參閱圖3,當(dāng)標(biāo)注有“按當(dāng)前時刻發(fā)送彈幕”字樣的按鍵被點(diǎn)擊時,可以在彈幕操作區(qū)域中展示可進(jìn)行交互的時間軸。該時間軸可以與視頻播放的進(jìn)度條相一致,只不過在所述時間軸上的時間節(jié)點(diǎn)更改時,不會影響視頻中播放的內(nèi)容。在本實(shí)施方式中,所述時間軸上的時間節(jié)點(diǎn)可以被用戶選中。具體地,在所述時間軸上,可以顯示用于表征當(dāng)前時間節(jié)點(diǎn)的可拖動控件。該可拖動控件在被用戶拖動后停止的位置處便可以對應(yīng)被選中的目標(biāo)時間節(jié)點(diǎn)。例如,如圖3所示,用戶將所述目標(biāo)時間節(jié)點(diǎn)選定為25分08秒。在本實(shí)施方式中,當(dāng)所述時間軸中的目標(biāo)時間節(jié)點(diǎn)被選中時,表明該目標(biāo)時間節(jié)點(diǎn)可以作為用戶想要發(fā)表彈幕信息的時間節(jié)點(diǎn),因此,可以將所述目標(biāo)時間節(jié)點(diǎn)填充至所述彈幕操作區(qū)域的彈幕輸入框中。同時,為了使得用戶能夠清楚地知曉所述目標(biāo)時間節(jié)點(diǎn)處對應(yīng)的視頻內(nèi)容,可以在所述視頻播放頁面中的指定位置處展示所述目標(biāo)時間節(jié)點(diǎn)對應(yīng)的視頻播放幀。所述視頻播放幀可以是所述目標(biāo)時間節(jié)點(diǎn)所處的一秒鐘內(nèi)隨機(jī)的一幀畫面,當(dāng)然,所述視頻播放幀也可以是所述目標(biāo)時間節(jié)點(diǎn)所處的一種秒內(nèi)預(yù)先設(shè)定的一幀畫面,本申請對此并不做限定。如圖3所示,所述指定位置可以是所述目標(biāo)時間節(jié)點(diǎn)的右上方,這樣,隨著目標(biāo)時間節(jié)點(diǎn)的改變,所述視頻播放幀的位置也可以一并改變。當(dāng)然,所述指定位置還可以是一個固定位置。例如,所述指定位置可以處于視頻播放界面的左上角。這樣,無論目標(biāo)時間節(jié)點(diǎn)是否改變,所述視頻播放幀所展示的位置都不會變。
請參閱圖4,在本申請一個實(shí)施方式中,所述彈幕操作區(qū)域中可以設(shè)置有彈幕輸入框。用戶可以在所述彈幕輸入框中輸入想要發(fā)表的彈幕內(nèi)容。在本實(shí)施方式中,所述彈幕輸入框的初始狀態(tài)可以是未激活狀態(tài)。當(dāng)所述彈幕輸入框處于未激活狀態(tài)時,用戶無法向其中輸入信息。通常而言,只有當(dāng)所述彈幕輸入框切換至激活狀態(tài)時,用戶才可以向其中輸入文字信息。在實(shí)際應(yīng)用中,處于未激活狀態(tài)的彈幕輸入框中通常不會出現(xiàn)光標(biāo)(cursor),而處于激活狀態(tài)的彈幕輸入框中通常會出現(xiàn)閃動的光標(biāo),以提示用戶當(dāng)前可以輸入文字信息。
在本實(shí)施方式中,施加于所述彈幕操作區(qū)域中的指定動作可以是所述彈幕輸入框從未激活狀態(tài)切換至激活狀態(tài)。在實(shí)際應(yīng)用場景中,用戶在觀看視頻時,彈幕輸入框的狀態(tài)可以處于未激活狀態(tài)。當(dāng)用戶想要針對視頻內(nèi)容發(fā)表彈幕時,用戶可以點(diǎn)擊所述彈幕輸入框,從而激活所述彈幕輸入框。這樣,所述彈幕輸入框便可以從未激活狀態(tài)切換至激活狀態(tài)。
需要說明的是,在實(shí)際應(yīng)用過程中,所述指定動作還可以具備更多的形式,并不僅僅局限于上述實(shí)施方式中例舉的情況。例如,所述指定動作還可以是在所述彈幕操作區(qū)域的指定位置按壓指定時間,或者在指定位置的按壓力度達(dá)到指定閾值等。
在本實(shí)施方式中,當(dāng)檢測到所述指定動作時,便可以記錄所述指定動作發(fā)生時的時間節(jié)點(diǎn)。所述時間節(jié)點(diǎn)可以指正在播放的視頻對應(yīng)的播放時間節(jié)點(diǎn)。例如,在視頻播放到5分09秒時,客戶端檢測到所述彈幕操作區(qū)域中發(fā)生了指定動作,此時,客戶端便可以記錄5分09秒這個時間節(jié)點(diǎn)。
在本實(shí)施方式中,視頻播放區(qū)域中的播放控件在播放視頻時,通常會同步更新視頻的播放參數(shù)。所述播放參數(shù)例如可以包括視頻的當(dāng)前畫質(zhì)、視頻播放時的下載速度、視頻播放的碼流、以及視頻當(dāng)前的播放進(jìn)度等。這樣,所述客戶端在記錄所述時間節(jié)點(diǎn)時,便可以在所述指定動作發(fā)生時,從所述播放控件處讀取視頻的當(dāng)前播放時間,從而可以將視頻的當(dāng)前播放時間作為所述指定動作發(fā)生時的時間節(jié)點(diǎn)。
s3:獲取在所述彈幕操作區(qū)域中錄入的所述彈幕信息,并將所述彈幕信息與所述時間節(jié)點(diǎn)相綁定。
在本實(shí)施方式中,所述時間節(jié)點(diǎn)可以表征用戶想要發(fā)表彈幕的時機(jī)。這樣,當(dāng)用戶在彈幕操作區(qū)域中錄入彈幕信息之后,可以將所述彈幕信息與記錄的所述時間節(jié)點(diǎn)進(jìn)行綁定。綁定的意義在于,所述彈幕信息是針對所述時間節(jié)點(diǎn)對應(yīng)的視頻內(nèi)容進(jìn)行評論的。這樣,用戶發(fā)表的彈幕信息便不會受到輸入彈幕信息的這段時間的延時影響,所述彈幕信息可以與視頻內(nèi)容進(jìn)行同步。
s5:將相綁定的所述彈幕信息與所述時間節(jié)點(diǎn)發(fā)送至服務(wù)器,以使得所述服務(wù)器按照所述時間節(jié)點(diǎn)將所述彈幕信息插入彈幕數(shù)據(jù)中。
在本實(shí)施方式中,所述彈幕信息與所述時間節(jié)點(diǎn)之間的綁定關(guān)系可以體現(xiàn)在:將所述彈幕信息與所述時間節(jié)點(diǎn)包含于同一條彈幕發(fā)送請求中發(fā)送至視頻播放網(wǎng)站的服務(wù)器。這樣,客戶端便可以將相綁定的所述彈幕信息與所述時間節(jié)點(diǎn)發(fā)送至服務(wù)器。
在本實(shí)施方式中,所述彈幕發(fā)送請求可以是按照預(yù)設(shè)規(guī)則進(jìn)行編寫的字符串。其中,所述預(yù)設(shè)規(guī)則可以是所述客戶端與所述服務(wù)器之間遵循的網(wǎng)絡(luò)通信協(xié)議。例如,所述彈幕發(fā)送請求可以是按照http協(xié)議進(jìn)行編寫的字符串。所述預(yù)設(shè)規(guī)則可以限定彈幕發(fā)送請求中的各個組成部分以及各個組成部分之間的排列順序。例如,所述彈幕發(fā)送請求中可以包括請求標(biāo)識字段、源ip地址字段以及目的ip地址字段。所述請求標(biāo)識字段可以填充相綁定的所述彈幕信息以及所述時間節(jié)點(diǎn)。所述源ip地址字段可以填寫所述客戶端的ip地址,所述目標(biāo)ip地址字段可以填寫所述服務(wù)器的ip地址。這樣,所述彈幕發(fā)送請求便可以從所述客戶端發(fā)送至所述服務(wù)器處。
在本實(shí)施方式中,所述服務(wù)器在接收到所述彈幕發(fā)送請求之后,可以從中提取出相綁定的所述彈幕信息和時間節(jié)點(diǎn)。在所述服務(wù)器中,可以具備視頻數(shù)據(jù)庫和彈幕數(shù)據(jù)庫,當(dāng)然,在實(shí)際應(yīng)用場景中,所述視頻數(shù)據(jù)庫和所述彈幕數(shù)據(jù)庫可以合并為一個數(shù)據(jù)庫。本申請對數(shù)據(jù)庫的數(shù)量和形式并不做限定。在所述視頻數(shù)據(jù)庫中,可以存儲視頻播放網(wǎng)站中的視頻數(shù)據(jù),在所述彈幕數(shù)據(jù)庫中,可以存儲與視頻數(shù)據(jù)相關(guān)聯(lián)的彈幕數(shù)據(jù)。在所述視頻數(shù)據(jù)和彈幕數(shù)據(jù)中,相關(guān)聯(lián)的視頻數(shù)據(jù)和彈幕數(shù)據(jù)可以具備相同的數(shù)據(jù)標(biāo)識。這樣,通過提供的數(shù)據(jù)標(biāo)識,便可以分別從所述視頻數(shù)據(jù)庫和彈幕數(shù)據(jù)庫中提取出相對應(yīng)的視頻數(shù)據(jù)和彈幕數(shù)據(jù)。所述彈幕數(shù)據(jù)中通常包括相關(guān)聯(lián)的時間節(jié)點(diǎn)和彈幕信息。所述時間節(jié)點(diǎn)可以用于表征關(guān)聯(lián)的彈幕信息應(yīng)當(dāng)出現(xiàn)于視頻中的具體時刻。例如,相關(guān)聯(lián)的時間節(jié)點(diǎn)和彈幕信息分別為25分09秒和“完結(jié)撒花~~”,那么當(dāng)用戶的客戶端從服務(wù)器中獲取該視頻的視頻數(shù)據(jù)和對應(yīng)的彈幕數(shù)據(jù)后,在視頻播放至25分09秒時便可以在視頻播放的界面中出現(xiàn)“完結(jié)撒花~~”這樣的彈幕信息。
在本實(shí)施方式中,所述彈幕數(shù)據(jù)中與每個視頻數(shù)據(jù)相關(guān)聯(lián)的彈幕信息均可以按照時間節(jié)點(diǎn)進(jìn)行排序。具體地排序方式可以是按照時間節(jié)點(diǎn)從小到大的順序進(jìn)行排序,這樣,客戶端從而可以根據(jù)服務(wù)器提供的彈幕數(shù)據(jù),按照視頻播放的進(jìn)度,依次播放所述彈幕數(shù)據(jù)中的每條彈幕信息。
在本實(shí)施方式中,服務(wù)器從彈幕發(fā)送請求中提取出相關(guān)聯(lián)的時間節(jié)點(diǎn)和彈幕信息后,可以根據(jù)所述時間節(jié)點(diǎn)的大小,將所述彈幕信息插入所述彈幕數(shù)據(jù)中的相應(yīng)位置處。具體地,所述服務(wù)器可以遍歷所述彈幕數(shù)據(jù)中已存儲的時間節(jié)點(diǎn),并將各個所述已存儲的時間節(jié)點(diǎn)與所述彈幕信息綁定的時間節(jié)點(diǎn)進(jìn)行對比。如果當(dāng)前已存儲的時間節(jié)點(diǎn)小于或者等于提取的所述時間節(jié)點(diǎn),便可以將提取的所述時間節(jié)點(diǎn)與下一個已存儲的時間節(jié)點(diǎn)進(jìn)行對比。直至找出比提取的所述時間節(jié)點(diǎn)大的已存儲的時間節(jié)點(diǎn)。這樣,在進(jìn)行比對之后,可以確定出所述彈幕數(shù)據(jù)中相鄰的第一時間節(jié)點(diǎn)和第二時間節(jié)點(diǎn);其中,所述第一時間節(jié)點(diǎn)小于或者等于所述彈幕信息綁定的時間節(jié)點(diǎn),所述第二時間節(jié)點(diǎn)大于所述彈幕信息綁定的時間節(jié)點(diǎn)。舉例來說明,請參閱圖5,假設(shè)彈幕數(shù)據(jù)中已存儲的有5組數(shù)據(jù),每組數(shù)據(jù)包括時間節(jié)點(diǎn)和彈幕信息。這5組彈幕數(shù)據(jù)是按照時間節(jié)點(diǎn)從小到大的順序依次排列的。此時,可以將待處理的彈幕數(shù)據(jù)中的時間節(jié)點(diǎn)與已存儲的時間節(jié)點(diǎn)依次比較,在逐個比較之后發(fā)現(xiàn),時間節(jié)點(diǎn)3小于待處理的彈幕數(shù)據(jù)中的時間節(jié)點(diǎn),而時間節(jié)點(diǎn)4大于待處理的彈幕數(shù)據(jù)中的時間節(jié)點(diǎn)。這樣,時間節(jié)點(diǎn)3便可以作為上述的第一時間節(jié)點(diǎn),時間節(jié)點(diǎn)4可以作為上述的第二時間節(jié)點(diǎn)。在本實(shí)施方式中,由于待處理的彈幕數(shù)據(jù)中的時間節(jié)點(diǎn)處于第一時間節(jié)點(diǎn)和第二時間節(jié)點(diǎn)之間,因此可以將所述彈幕信息插入所述第一時間節(jié)點(diǎn)對應(yīng)的彈幕信息和所述第二時間節(jié)點(diǎn)對應(yīng)的彈幕信息之間。這樣,在播放彈幕數(shù)據(jù)時,可以依在播放完第一時間節(jié)點(diǎn)對應(yīng)的彈幕信息后,直接播放插入的該彈幕信息,并在插入的該彈幕信息播放完之后,播放第二時間節(jié)點(diǎn)對應(yīng)的彈幕信息。
在本申請一個實(shí)施方式中,當(dāng)客戶端記錄了所述時間節(jié)點(diǎn)后,為了使得用戶能夠直觀地看到該時間節(jié)點(diǎn),可以將記錄的所述時間節(jié)點(diǎn)填充至所述彈幕操作區(qū)域的彈幕輸入框中。請參閱圖2至圖4,記錄的所述時間節(jié)點(diǎn)可以填充于所述彈幕輸入框的左側(cè),并將所述時間節(jié)點(diǎn)與用戶輸入的內(nèi)容之間可以通過冒號隔開。當(dāng)然,在實(shí)際應(yīng)用場景中,用于隔開所述時間節(jié)點(diǎn)和用戶輸入的內(nèi)容的還可以是其它符號,本申請對此并不做限定。需要說明的是,盡管所述時間節(jié)點(diǎn)處于所述彈幕輸入框中,但其可以不計(jì)入彈幕信息中,也就是說,在視頻播放界面中顯示的內(nèi)容可以不包含該時間節(jié)點(diǎn)。
在本實(shí)施方式中,所述彈幕輸入框中的時間信息是可以與用戶進(jìn)行交互的,不同的交互動作,可以產(chǎn)生不同的效果。具體地,當(dāng)所述彈幕輸入框中填充的所述時間節(jié)點(diǎn)被點(diǎn)擊時,可以表明用戶當(dāng)前不需要發(fā)表與視頻內(nèi)容相同步的彈幕信息,此時,可以從所述彈幕輸入框中清除所述時間節(jié)點(diǎn)。此外,清除所述時間節(jié)點(diǎn)的交互動作還可以有其它實(shí)現(xiàn)方式。具體地,請參閱圖6,當(dāng)所述彈幕輸入框中填充的所述時間節(jié)點(diǎn)被選中時,可以在所述彈幕輸入框中展示與所述時間節(jié)點(diǎn)相關(guān)聯(lián)的取消控件。其中,所述選中的動作可以是單擊,也可以是雙擊,還可以是按壓力度達(dá)到指定閾值,還可以是按壓時間達(dá)到指定閾值。如圖6所示,在所述時間節(jié)點(diǎn)被選中時,該時間節(jié)點(diǎn)的右側(cè)可以出現(xiàn)帶有“取消”字樣的控件。該控件同樣是可以與用戶進(jìn)行交互的。當(dāng)所述取消控件被觸發(fā)時,便可以從所述彈幕輸入框中清除所述時間節(jié)點(diǎn)。
在本實(shí)施方式中,當(dāng)所述時間節(jié)點(diǎn)被選中時,還可以在所述彈幕操作區(qū)域中展示時間節(jié)點(diǎn)選擇列表。請參閱圖7,所述時間節(jié)點(diǎn)選擇列表例如可以是所述時間節(jié)點(diǎn)的滾動菜單。在所述滾動菜單中可以展示與視頻播放進(jìn)度相關(guān)聯(lián)的各個時間節(jié)點(diǎn)。所述時間節(jié)點(diǎn)可以按照固定間隔進(jìn)行劃分。例如,在所述滾動菜單中的相鄰兩個時間節(jié)點(diǎn)之間的間隔可以為5秒。這樣,用戶可以選擇所述時間節(jié)點(diǎn)選擇列表中的任意一個時間節(jié)點(diǎn)。例如,用戶可以通過手指向上滑動或者向下滑動,從而選擇當(dāng)前時間節(jié)點(diǎn)之前的時間節(jié)點(diǎn)或者之后的時間節(jié)點(diǎn)。當(dāng)所述時間節(jié)點(diǎn)選擇列表中的時間節(jié)點(diǎn)被選中時,表明用戶想在該時間節(jié)點(diǎn)處發(fā)表彈幕,從而可以將被選中的時間節(jié)點(diǎn)填充至所述彈幕輸入框中。
在本申請一個實(shí)施方式中,在將所述時間節(jié)點(diǎn)從所述彈幕輸入框中取消后,表明用戶當(dāng)前不需要發(fā)表與視頻內(nèi)容相同步的彈幕信息。因此,客戶端便可以按照現(xiàn)有的流程來發(fā)表彈幕信息。在本實(shí)施方式中,在用戶取消所述時間節(jié)點(diǎn)之后,客戶端便可以取消所述時間節(jié)點(diǎn)與用戶輸入的彈幕信息的綁定關(guān)系。這樣,在向服務(wù)器發(fā)送彈幕信息時,可以將所述彈幕信息與向服務(wù)器發(fā)送所述彈幕信息的發(fā)送時間節(jié)點(diǎn)相綁定,以使得所述服務(wù)器按照所述發(fā)送時間節(jié)點(diǎn)將所述彈幕信息存儲至所述彈幕數(shù)據(jù)中。
在本申請一個實(shí)施方式中,用戶還可以根據(jù)實(shí)際情況靈活地選擇彈幕信息在視頻中出現(xiàn)的時機(jī)。具體地,當(dāng)所述時間節(jié)點(diǎn)被填充至彈幕輸入框之后,用戶可以選中所述時間節(jié)點(diǎn)。這樣,當(dāng)所述彈幕輸入框中填充的所述時間節(jié)點(diǎn)被選中時,所述時間節(jié)點(diǎn)可以切換至可編輯狀態(tài)。所述被選中的操作例如可以是單擊、雙擊、持續(xù)按壓指定時長、按壓力度達(dá)到指定閾值等等。當(dāng)所述時間節(jié)點(diǎn)在被填充至所述彈幕輸入框中時,可以作為一個整體,其中的各個數(shù)字無法被選中。而當(dāng)所述時間節(jié)點(diǎn)切換至可編輯狀態(tài)時,所述時間節(jié)點(diǎn)中的各個數(shù)字便可以由用戶進(jìn)行修改。這樣,用戶可以根據(jù)自身的意愿,對時間節(jié)點(diǎn)進(jìn)行編輯。
在本實(shí)施方式中,當(dāng)時間節(jié)點(diǎn)完成編輯后,客戶端可以判斷編輯之后的時間節(jié)點(diǎn)是否符合指定格式。所述指定格式可以用于限定時間節(jié)點(diǎn)的表示方式。例如,所述指定格式可以限定編輯之后的時間節(jié)點(diǎn)包括由冒號分隔的時鐘數(shù)值、分鐘數(shù)值和秒鐘數(shù)值,并且編輯之后的時間節(jié)點(diǎn)不能超出視頻的總時長。若編輯之后的時間節(jié)點(diǎn)符合所述指定格式,則可以將所述編輯之后的時間節(jié)點(diǎn)作為與所述彈幕信息相綁定的時間節(jié)點(diǎn)。這樣,用戶輸入的彈幕信息便可以按照其意愿,在視頻播放過程中的任意時刻進(jìn)行播放。
請參閱圖8,本申請還提供一種客戶端,所述客戶端包括處理器100和存儲器200,其中,所述存儲器200中存儲有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被所述處理器執(zhí)行時,可以實(shí)現(xiàn)以下步驟。
s1:檢測是否有施加于彈幕操作區(qū)域中的指定動作,當(dāng)在所述彈幕操作區(qū)域中檢測到所述指定動作時,記錄所述指定動作發(fā)生時的時間節(jié)點(diǎn);
s3:獲取在所述彈幕操作區(qū)域中錄入的彈幕信息,并將所述彈幕信息與所述時間節(jié)點(diǎn)相綁定;
s5:將相綁定的所述彈幕信息與所述時間節(jié)點(diǎn)發(fā)送至服務(wù)器,以使得所述服務(wù)器按照所述時間節(jié)點(diǎn)將所述彈幕信息插入彈幕數(shù)據(jù)中。
在本實(shí)施方式中,所述處理器100可以按任何適當(dāng)?shù)姆绞綄?shí)現(xiàn)。例如,處理器可以采取例如微處理器或處理器以及存儲可由該(微)處理器執(zhí)行的計(jì)算機(jī)可讀程序代碼(例如軟件或固件)的計(jì)算機(jī)可讀介質(zhì)、邏輯門、開關(guān)、專用集成電路(applicationspecificintegratedcircuit,asic)、可編程邏輯控制器和嵌入微控制器的形式等等。本申請并不作限定。
在本實(shí)施方式中,所述存儲器200可以是用于保存信息的記憶設(shè)備。在數(shù)字系統(tǒng)中,能保存二進(jìn)制數(shù)據(jù)的設(shè)備可以是存儲器;在集成電路中,一個沒有實(shí)物形式的具有存儲功能的電路也可以為存儲器,如ram、fifo等;在系統(tǒng)中,具有實(shí)物形式的存儲設(shè)備也可以叫存儲器,如內(nèi)存條、tf卡等。
上述實(shí)施方式公開的客戶端,其處理器100和存儲器200實(shí)現(xiàn)的具體功能,可以與本申請中的彈幕信息的處理方法實(shí)施方式相對照解釋,可以實(shí)現(xiàn)本申請的彈幕信息的處理方法實(shí)施方式并達(dá)到方法實(shí)施方式的技術(shù)效果。
在本申請一個實(shí)施方式中,所述計(jì)算機(jī)程序被所述處理器執(zhí)行時,還實(shí)現(xiàn)以下步驟:
將記錄的所述時間節(jié)點(diǎn)填充至所述彈幕操作區(qū)域的彈幕輸入框中;
其中,當(dāng)所述彈幕輸入框中填充的所述時間節(jié)點(diǎn)被點(diǎn)擊時,從所述彈幕輸入框中清除所述時間節(jié)點(diǎn);或者
當(dāng)所述彈幕輸入框中填充的所述時間節(jié)點(diǎn)被選中時,在所述彈幕輸入框中展示與所述時間節(jié)點(diǎn)相關(guān)聯(lián)的取消控件;當(dāng)所述取消控件被觸發(fā)時,從所述彈幕輸入框中清除所述時間節(jié)點(diǎn)。
在本申請一個實(shí)施方式中,所述計(jì)算機(jī)程序被所述處理器執(zhí)行時,還實(shí)現(xiàn)以下步驟:
取消所述時間節(jié)點(diǎn)與所述彈幕信息的綁定關(guān)系;
將所述彈幕信息與向服務(wù)器發(fā)送所述彈幕信息的發(fā)送時間節(jié)點(diǎn)相綁定,以使得所述服務(wù)器按照所述發(fā)送時間節(jié)點(diǎn)將所述彈幕信息存儲至所述彈幕數(shù)據(jù)中。
在本申請一個實(shí)施方式中,所述計(jì)算機(jī)程序被所述處理器執(zhí)行時,還實(shí)現(xiàn)以下步驟:
當(dāng)所述彈幕輸入框中填充的所述時間節(jié)點(diǎn)被選中時,所述時間節(jié)點(diǎn)切換至可編輯狀態(tài);
判斷編輯之后的時間節(jié)點(diǎn)是否符合指定格式;若符合,將所述編輯之后的時間節(jié)點(diǎn)作為與所述彈幕信息相綁定的時間節(jié)點(diǎn);其中,所述指定格式用于限定時間節(jié)點(diǎn)的表示方式。
由上可見,在本申請中,可以預(yù)先在彈幕操作區(qū)域中定義一些指定動作,這些指定動作可以表征用戶正準(zhǔn)備執(zhí)行發(fā)表彈幕的操作。這樣,當(dāng)在彈幕操作區(qū)域中檢測到所述指定動作時,便可以記錄該指定動作發(fā)生時的時間節(jié)點(diǎn)。該時間節(jié)點(diǎn)便可以是用戶準(zhǔn)備發(fā)表彈幕的時間節(jié)點(diǎn)。當(dāng)用戶在彈幕操作區(qū)域中錄入彈幕信息后,客戶端可以將該彈幕信息與之前記錄的時間節(jié)點(diǎn)相綁定。在客戶端將綁定的時間節(jié)點(diǎn)和彈幕信息發(fā)送至服務(wù)器之后,服務(wù)器便可以按照時間節(jié)點(diǎn),將彈幕信息插入彈幕數(shù)據(jù)中。這樣,盡管用戶在輸入彈幕信息時可能耽誤了一段時間,但該彈幕信息在實(shí)際播出時,是在先前記錄的時間節(jié)點(diǎn)處播放,從而使得該彈幕信息能夠與視頻內(nèi)容進(jìn)行同步播放。
在20世紀(jì)90年代,對于一個技術(shù)的改進(jìn)可以很明顯地區(qū)分是硬件上的改進(jìn)(例如,對二極管、晶體管、開關(guān)等電路結(jié)構(gòu)的改進(jìn))還是軟件上的改進(jìn)(對于方法流程的改進(jìn))。然而,隨著技術(shù)的發(fā)展,當(dāng)今的很多方法流程的改進(jìn)已經(jīng)可以視為硬件電路結(jié)構(gòu)的直接改進(jìn)。設(shè)計(jì)人員幾乎都通過將改進(jìn)的方法流程編程到硬件電路中來得到相應(yīng)的硬件電路結(jié)構(gòu)。因此,不能說一個方法流程的改進(jìn)就不能用硬件實(shí)體模塊來實(shí)現(xiàn)。例如,可編程邏輯器件(programmablelogicdevice,pld)(例如現(xiàn)場可編程門陣列(fieldprogrammablegatearray,fpga))就是這樣一種集成電路,其邏輯功能由用戶對器件編程來確定。由設(shè)計(jì)人員自行編程來把一個數(shù)字系統(tǒng)“集成”在一片pld上,而不需要請芯片制造廠商來設(shè)計(jì)和制作專用的集成電路芯片2。而且,如今,取代手工地制作集成電路芯片,這種編程也多半改用“邏輯編譯器(logiccompiler)”軟件來實(shí)現(xiàn),它與程序開發(fā)撰寫時所用的軟件編譯器相類似,而要編譯之前的原始代碼也得用特定的編程語言來撰寫,此稱之為硬件描述語言(hardwaredescriptionlanguage,hdl),而hdl也并非僅有一種,而是有許多種,如abel(advancedbooleanexpressionlanguage)、ahdl(alterahardwaredescriptionlanguage)、confluence、cupl(cornelluniversityprogramminglanguage)、hdcal、jhdl(javahardwaredescriptionlanguage)、lava、lola、myhdl、palasm、rhdl(rubyhardwaredescriptionlanguage)等,目前最普遍使用的是vhdl(very-high-speedintegratedcircuithardwaredescriptionlanguage)與verilog2。本領(lǐng)域技術(shù)人員也應(yīng)該清楚,只需要將方法流程用上述幾種硬件描述語言稍作邏輯編程并編程到集成電路中,就可以很容易得到實(shí)現(xiàn)該邏輯方法流程的硬件電路。
通過以上的實(shí)施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本申請可借助軟件加必需的通用硬件平臺的方式來實(shí)現(xiàn)。基于這樣的理解,本申請的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如rom/ram、磁碟、光盤等,包括若干指令用以使得一臺計(jì)算機(jī)設(shè)備(可以是個人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請各個實(shí)施方式或者實(shí)施方式的某些部分所述的方法。
本申請可以在由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計(jì)算環(huán)境中實(shí)踐本申請,在這些分布式計(jì)算環(huán)境中,由通過通信網(wǎng)絡(luò)而被連接的遠(yuǎn)程處理設(shè)備來執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程序模塊可以位于包括存儲設(shè)備在內(nèi)的本地和遠(yuǎn)程計(jì)算機(jī)存儲介質(zhì)中。
本領(lǐng)域技術(shù)人員也知道,除了以純計(jì)算機(jī)可讀程序代碼方式實(shí)現(xiàn)客戶端和服務(wù)器以外,完全可以通過將方法步驟進(jìn)行邏輯編程來使得客戶端和服務(wù)器以邏輯門、開關(guān)、專用集成電路、可編程邏輯控制器和嵌入微控制器等的形式來實(shí)現(xiàn)相同功能。因此這種客戶端和服務(wù)器可以被認(rèn)為是一種硬件部件,而對其內(nèi)包括的用于實(shí)現(xiàn)各種功能的裝置也可以視為硬件部件內(nèi)的結(jié)構(gòu)?;蛘呱踔粒梢詫⒂糜趯?shí)現(xiàn)各種功能的裝置視為既可以是實(shí)現(xiàn)方法的軟件模塊又可以是硬件部件內(nèi)的結(jié)構(gòu)。
本說明書中的各個實(shí)施方式均采用遞進(jìn)的方式描述,各個實(shí)施方式之間相同相似的部分互相參見即可,每個實(shí)施方式重點(diǎn)說明的都是與其他實(shí)施方式的不同之處。尤其,針對客戶端和服務(wù)器的實(shí)施方式來說,均可以參照前述方法的實(shí)施方式的介紹對照解釋。
雖然通過實(shí)施方式描繪了本申請,本領(lǐng)域普通技術(shù)人員知道,本申請有許多變形和變化而不脫離本申請的精神,希望所附的權(quán)利要求包括這些變形和變化而不脫離本申請的精神。