本發(fā)明實施例涉及計算機技術(shù)領(lǐng)域,特別涉及一種虛擬禮物展示方法及裝置。
背景技術(shù):
隨著互聯(lián)網(wǎng)直播平臺的發(fā)展,越來越多的用戶通過加入直播客戶端中的頻道與其他用戶進行互動。其中,頻道用于為不同用戶提供邏輯上獨立的交流空間。頻道中的某一用戶作為主播用戶,主播用戶在該頻道中發(fā)布視頻流、音頻流等多媒體信息;頻道中的其他用戶作為該主播用戶的觀眾用戶,觀眾用戶查看主播用戶發(fā)送的多媒體信息。
為了增加主播用戶與觀眾用戶之間互動時的趣味性,通常會在頻道的顯示頁面中設(shè)置虛擬禮物的選項。當(dāng)觀眾用戶對主播用戶發(fā)布的多媒體信息感興趣時,通過點擊虛擬禮物的選項達到給主播用戶贈送虛擬禮物的目的。觀眾用戶在給主播用戶贈送虛擬禮物時,可以選擇送出的虛擬禮物的組數(shù)和每組虛擬禮物的數(shù)量。終端在顯示虛擬禮物時以預(yù)設(shè)的動畫效果顯示,比如:觀眾選擇送出188組棒棒糖,每組棒棒糖包括1314個棒棒糖,則終端顯示第n組棒棒糖時顯示“1314棒棒糖×n”的圖標(biāo)加文字形式的動畫效果。又比如:觀眾選擇送出1組10個棒棒糖,則終端顯示第m個棒棒糖時顯示“棒棒糖×m”的圖標(biāo)加文字形式的動畫效果。
相關(guān)技術(shù)提供了一種展示贈送虛擬禮物時的特效方法,該方法包括:直播客戶端接收并緩存服務(wù)器發(fā)送的虛擬禮物的至少兩條展示數(shù)據(jù),每條展示數(shù)據(jù)用于展示一組虛擬禮物或者一個虛擬禮物的禮物動畫,每條展示數(shù)據(jù)包括用于展示一組或一個虛擬禮物的一組動畫幀;終端在屏幕的4個預(yù)設(shè)顯示區(qū)域中分別顯示一條展示數(shù)據(jù),且對于每個顯示區(qū)域中的展示數(shù)據(jù)以10幀/s的頻率采用各自獨立的刷新時間點刷新該展示數(shù)據(jù)中的動畫幀,在該條展示數(shù)據(jù)展示完成后在該顯示區(qū)域顯示下一條展示數(shù)據(jù)。比如:直播客戶端緩存了188組棒棒糖對應(yīng)的188條展示數(shù)據(jù),終端在屏幕的4個預(yù)設(shè)顯示區(qū)域分別顯示一條展示數(shù)據(jù),對于每個顯示區(qū)域中的展示數(shù)據(jù),終端以10幀/s的頻率刷新該展示數(shù)據(jù)中的動畫幀,由于各個顯示區(qū)域中的刷新時間點可能是不同的,對于4個顯示區(qū)域中的展示數(shù)據(jù),終端每屏幕每秒共需要刷新顯示4×10幀/s=40次。
當(dāng)直播客戶端接收到的展示數(shù)據(jù)較多時,終端需要多屏刷新動畫幀,刷新動畫幀的次數(shù)較多,這就導(dǎo)致CPU(Central Processing Unit,中央處理器)負荷較大的問題。
技術(shù)實現(xiàn)要素:
為了解決相關(guān)技術(shù)由于CPU對顯示在不同顯示區(qū)域的動畫幀獨立地刷新,在刷新步調(diào)不同時,每屏每秒刷新動畫幀的次數(shù)過多,CPU工作負荷較大的問題,本發(fā)明實施例提供了一種虛擬禮物顯示方法及裝置。所述技術(shù)方案如下:
第一方面,提供了一種虛擬禮物顯示方法,所述方法包括:
接收服務(wù)器發(fā)送的n條展示數(shù)據(jù),所述展示數(shù)據(jù)包括用于展示虛擬禮物對應(yīng)的一組動畫幀,n為大于等于2的整數(shù);
將所述n條展示數(shù)據(jù)緩存在緩沖區(qū)中;
從所述緩沖區(qū)中讀取m條所述展示數(shù)據(jù),m為大于等于2的整數(shù);
在直播客戶端的用戶界面中的m個顯示區(qū)域中,以相同的刷新頻率和刷新時間點分別刷新顯示m條所述展示數(shù)據(jù)中的所述動畫幀。
可選地,所述在直播客戶端的用戶界面中的m個顯示區(qū)域中,以相同的刷新頻率和刷新時間點分別刷新顯示m條所述展示數(shù)據(jù)中的所述動畫幀,包括:
啟動預(yù)設(shè)時長閾值的定時器;
以所述定時器的啟動時刻為起始刷新時間點,按照相同的所述刷新頻率在m個所述顯示區(qū)域刷新對應(yīng)的所述展示數(shù)據(jù)中的動畫幀。
可選地,所述啟動預(yù)設(shè)時長閾值的定時器之后,還包括:
在所述定時器達到所述預(yù)設(shè)時長閾值時,再次執(zhí)行所述從所述緩沖區(qū)中讀取m條所述展示數(shù)據(jù)的步驟;
其中,所述預(yù)設(shè)時長閾值與每條所述展示數(shù)據(jù)的顯示時長相等。
可選地,所述從所述緩沖區(qū)中讀取m條所述展示數(shù)據(jù),包括:
獲取所述直播客戶端的用戶界面在同時顯示所述展示數(shù)據(jù)時的條數(shù)最大值m;
當(dāng)所述n大于或等于所述條數(shù)最大值m時,從所述緩沖區(qū)中讀取m條所述展示數(shù)據(jù)。
可選地,所述方法還包括:
當(dāng)所述n小于所述條數(shù)最大值m時,從所述緩沖區(qū)中獲取n條所述展示數(shù)據(jù);
在直播客戶端的用戶界面中的n個顯示區(qū)域中,以相同的刷新頻率和刷新時間點分別刷新顯示n條所述展示數(shù)據(jù)中的所述動畫幀。
第二方面,提供了一種虛擬禮物顯示裝置,所述裝置包括:
接收模塊,用于接收服務(wù)器發(fā)送的n條展示數(shù)據(jù),所述展示數(shù)據(jù)包括用于展示虛擬禮物對應(yīng)的一組動畫幀,n為大于等于2的整數(shù);
緩存模塊,用于將所述n條展示數(shù)據(jù)緩存在緩沖區(qū)中;
第一讀取模塊,用于從所述緩沖區(qū)中讀取m條所述展示數(shù)據(jù),m為大于等于2的整數(shù);
第一顯示模塊,用于在直播客戶端的用戶界面中的m個顯示區(qū)域中,以相同的刷新頻率和刷新時間點分別刷新顯示m條所述展示數(shù)據(jù)中的所述動畫幀。
可選地,所述第一顯示模塊,包括:
啟動單元,用于啟動預(yù)設(shè)時長閾值的定時器;
顯示單元,用于以所述定時器的啟動時刻為起始刷新時間點,按照相同的所述刷新頻率在m個所述顯示區(qū)域刷新對應(yīng)的所述展示數(shù)據(jù)中的動畫幀。
可選地,所述第一讀取模塊,還用于在所述定時器達到所述預(yù)設(shè)時長閾值時,再次執(zhí)行所述從所述緩沖區(qū)中讀取m條所述展示數(shù)據(jù)的步驟;其中,所述預(yù)設(shè)時長閾值與每條所述展示數(shù)據(jù)的顯示時長相等。
可選地,所述第一讀取模塊,包括:
獲取單元,用于獲取所述直播客戶端的用戶界面在同時顯示所述展示數(shù)據(jù)時的條數(shù)最大值m;
讀取單元,用于當(dāng)所述n大于或等于所述條數(shù)最大值m時,從所述緩沖區(qū)中讀取m條所述展示數(shù)據(jù)。
可選地,所述裝置還包括:
第二讀取模塊,用于當(dāng)所述n小于所述條數(shù)最大值m時,從所述緩沖區(qū)中獲取n條所述展示數(shù)據(jù);
第二顯示模塊,用于在直播客戶端的用戶界面中的n個顯示區(qū)域中,以相同的刷新頻率和刷新時間點分別刷新顯示n條所述展示數(shù)據(jù)中的所述動畫幀。
本發(fā)明實施例提供的技術(shù)方案帶來的有益效果包括:
通過從緩沖區(qū)緩存的n條展示數(shù)據(jù)中獲取m條展示數(shù)據(jù);在直播客戶端的用戶界面中的m個顯示區(qū)域中,以相同的刷新頻率和刷新時間點分別刷新顯示m條展示數(shù)據(jù)中的動畫幀;解決了相關(guān)技術(shù)中由于CPU對顯示在不同顯示區(qū)域的動畫幀獨立地刷新,在刷新步調(diào)不同時,每屏每秒刷新動畫幀的次數(shù)過多,CPU工作負荷較大的問題;由于CPU可以同時刷新該m條展示數(shù)據(jù)中的動畫幀,無需分別對m條展示數(shù)據(jù)中的動畫幀進行控制,達到了減少CPU刷新動畫幀的次數(shù),降低CPU的工作負荷的效果。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明一個實施例提供的虛擬禮物顯示方法的流程圖;
圖2是本發(fā)明另一個實施例提供的虛擬禮物顯示方法的流程圖;
圖3是本發(fā)明一個實施例提供的顯示虛擬禮物的示意圖;
圖4是本發(fā)明一個實施例提供的虛擬禮物顯示裝置的框圖;
圖5是本發(fā)明另一個實施例提供的虛擬禮物顯示裝置的框圖;
圖6是本發(fā)明一個實施例提供的智能電視的結(jié)構(gòu)示意圖。
具體實施方式
這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本發(fā)明相一致的所有實施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。
本發(fā)明實施例提供的方法,各步驟的執(zhí)行主體為終端,該終端中安裝有直播客戶端。其中,終端可以為手機、平板電腦、電子書閱讀器、膝上型便攜計算機和臺式計算機等,本實施例對此不作限定。直播客戶端是指利用互聯(lián)網(wǎng)及流媒體技術(shù)將采集到的視頻圖像實時發(fā)送至其他終端的應(yīng)用程序。通常直播客戶端提供有至少一個頻道(也稱房間),頻道用于為不同用戶提供邏輯上獨立的交流空間。頻道中的某一用戶作為主播用戶,主播用戶在該頻道中發(fā)布視頻流、音頻流等多媒體信息;頻道中的其他用戶作為該主播用戶的觀眾用戶,觀眾用戶查看主播用戶發(fā)送的多媒體信息。
請參考圖1,其示出了本發(fā)明一個實施例提供的虛擬禮物顯示方法的流程圖。本實施例以該虛擬禮物顯示方法應(yīng)用于運行有直播客戶端的終端來舉例說明。該方法可以包括以下幾個步驟:
步驟101,接收服務(wù)器發(fā)送的n條展示數(shù)據(jù),展示數(shù)據(jù)包括用于展示虛擬禮物對應(yīng)的一組動畫幀,n為大于等于2的整數(shù)。
步驟102,將n條展示數(shù)據(jù)緩存在緩沖區(qū)中。
步驟103,從緩沖區(qū)中讀取m條展示數(shù)據(jù),m為大于等于2的整數(shù)。
步驟104,在直播客戶端的用戶界面中的m個顯示區(qū)域中,以相同的刷新頻率和刷新時間點分別刷新顯示m條展示數(shù)據(jù)中的動畫幀。
綜上所述,本實施例提供的方法,通過從緩沖區(qū)緩存的n條展示數(shù)據(jù)中獲取m條展示數(shù)據(jù);在直播客戶端的用戶界面中的m個顯示區(qū)域中,以相同的刷新頻率和刷新時間點分別刷新顯示m條展示數(shù)據(jù)中的動畫幀;解決了相關(guān)技術(shù)中由于CPU對顯示在不同顯示區(qū)域的動畫幀獨立地刷新,在刷新步調(diào)不同時,每屏每秒刷新動畫幀的次數(shù)過多,CPU工作負荷較大的問題;由于CPU可以同時刷新該m條展示數(shù)據(jù)中的動畫幀,無需分別對m條展示數(shù)據(jù)中的動畫幀進行控制,達到了減少CPU刷新動畫幀的次數(shù),降低CPU的工作負荷的效果。
請參考圖2,其示出了本發(fā)明另一個實施例提供的虛擬禮物顯示方法的流程圖。本實施例以該虛擬禮物顯示方法應(yīng)用于運行有直播客戶端的終端來舉例說明。該方法可以包括以下幾個步驟:
步驟201,接收服務(wù)器發(fā)送的n條展示數(shù)據(jù),展示數(shù)據(jù)包括用于展示虛擬禮物對應(yīng)的一組動畫幀,n為大于等于2的整數(shù)。
虛擬禮物用于供某一頻道中的觀眾用戶與主播用戶進行互動。當(dāng)頻道中的觀眾用戶需要向該頻道中的主播用戶贈送虛擬禮物時,可以觸發(fā)頻道的顯示頁面中用于贈送虛擬禮物的選項,此時,直播客戶端根據(jù)該觸發(fā)操作生成禮物贈送指令,該禮物贈送指令包括虛擬禮物的類型、數(shù)量、觀眾用戶帳號等信息。直播客戶端將該禮物贈送指令發(fā)送給服務(wù)器,服務(wù)器接收到該禮物贈送指令后檢測該觀眾用戶帳號是否具有贈送禮物的權(quán)限;若是,則根據(jù)該禮物贈送指令中的虛擬禮物的類型、數(shù)量向頻道中的主播用戶對應(yīng)的終端和各個觀眾用戶對應(yīng)的終端發(fā)送n條展示數(shù)據(jù),該展示數(shù)據(jù)包括用于展示虛擬禮物對應(yīng)的一組動畫幀,比如:展示1根棒棒糖的一組動畫幀,或者,展示1組包括66根棒棒糖的一組動畫幀。相應(yīng)地,主播用戶對應(yīng)的終端和各個觀眾用戶對應(yīng)的終端(下文中簡稱終端)接收該展示數(shù)據(jù)。
其中,展示數(shù)據(jù)中的一組動畫幀的數(shù)量可以為10幀、20幀、25幀等,本實施例對此不作限定。另外,對于不同類型的虛擬禮物對應(yīng)的展示數(shù)據(jù),展示數(shù)據(jù)包括的一組動畫幀的數(shù)量可以相同也可以不同,本實施例對此不作限定。由于本實施例提供的是在終端接收到多條展示數(shù)據(jù)時,顯示虛擬禮物的優(yōu)化方法,因此,在本實施例中終端接收到的展示數(shù)據(jù)的條數(shù)大于等于2。終端接收到的至少兩條展示數(shù)據(jù)可以是同一觀眾用戶選擇的虛擬禮物對應(yīng)的展示數(shù)據(jù);或者,該至少兩條展示數(shù)據(jù)是不同觀眾用戶選擇的虛擬禮物對應(yīng)的展示數(shù)據(jù)。
需要說明的是,當(dāng)終端接收到一條展示數(shù)據(jù)時同樣適用本實施例提供的方法。
在一個示例中,參考圖3所示的頻道的顯示頁面,假設(shè)觀眾用戶選擇了該顯示頁面中的虛擬禮物“棒棒糖”31,并選擇送出10根棒棒糖,然后點擊了“贈送”選項32,則終端中的直播客戶端根據(jù)該點擊操作生成禮物贈送指令發(fā)送給服務(wù)器,服務(wù)器根據(jù)該禮物贈送指令確定出該觀眾用戶具有贈送權(quán)限后,將10根棒棒糖對應(yīng)的10條展示數(shù)據(jù)發(fā)送給頻道中所有用戶對應(yīng)的終端。
在另一個示例中,假設(shè)觀眾用戶A選擇了該顯示頁面中的虛擬禮物“棒棒糖”,并選擇送出1根棒棒糖,然后觀眾用戶A點擊了“贈送”選項,則觀眾用戶A對應(yīng)的終端A中的直播客戶端根據(jù)該點擊操作生成禮物贈送指令A(yù)發(fā)送給服務(wù)器;觀眾用戶B選擇了該顯示頁面中的虛擬禮物“圣誕帽”,并選擇送出1頂圣誕帽,然后觀眾用戶B點擊了“贈送”選項,則觀眾用戶B對應(yīng)的終端B中的直播客戶端根據(jù)該點擊操作生成禮物贈送指令B發(fā)送給服務(wù)器。服務(wù)器根據(jù)禮物贈送指令A(yù)確定出觀眾用戶A具有贈送權(quán)限,且根據(jù)禮物贈送指令B確定出觀眾用戶B具有贈送權(quán)限后,將1根棒棒糖對應(yīng)的1條展示數(shù)據(jù)和1頂圣誕帽對應(yīng)的1條展示數(shù)據(jù)發(fā)送給頻道中所有用戶對應(yīng)的終端。
步驟202,將n條展示數(shù)據(jù)緩存在緩沖區(qū)中。
步驟203,獲取直播客戶端的用戶界面在同時顯示展示數(shù)據(jù)時的條數(shù)最大值m,m為大于等于2的整數(shù)。
為了保證終端在通過直播客戶端播放直播的過程中,顯示的虛擬禮物的動畫效果不會過多地占用顯示頁面的空間,通常會在直播客戶端中設(shè)置每屏幕顯示展示數(shù)據(jù)的條數(shù)最大值,比如,直播客戶端每屏幕僅顯示4條展示數(shù)據(jù),或者僅顯示2條展示數(shù)據(jù),本實施例對該m的具體數(shù)值不作限定。
步驟204,當(dāng)n大于或等于條數(shù)最大值m時,從緩沖區(qū)中讀取m條展示數(shù)據(jù)。
本實施例通過每次從緩沖區(qū)中讀取m條展示數(shù)據(jù),并同時顯示該m條展示數(shù)據(jù),使得終端可以同時刷新顯示該m條展示數(shù)據(jù)包括的動畫幀,無需分別對緩沖區(qū)中的每條展示數(shù)據(jù)包括的動畫幀分別作處理,降低了CPU的工作負荷。
由于終端同時顯示m條展示數(shù)據(jù)時,m的值越大,降低CPU的工作負荷的效果越好,因此,本實施例通過從緩沖區(qū)中讀取條數(shù)最大值m條展示數(shù)據(jù),盡可能多地降低了CPU的工作負荷。
可選地,終端從緩沖區(qū)中獲取的展示數(shù)據(jù)的條數(shù)也可以小于條數(shù)最大值,本實施例對此不作限定。
步驟205,啟動預(yù)設(shè)時長閾值的定時器。
定時器用于確定CPU刷新m條展示數(shù)據(jù)中的動畫幀的起始時刻和終止時刻,該定時器的預(yù)設(shè)時長閾值與每條展示數(shù)據(jù)的顯示時長相等??蛇x地,當(dāng)不同的虛擬禮物的展示數(shù)據(jù)的顯示時長不同時,該定時器的預(yù)設(shè)時長閾值與m條展示數(shù)據(jù)中最大的顯示時長相等。
步驟206,以定時器的啟動時刻為起始刷新時間點,按照相同的刷新頻率在m個顯示區(qū)域刷新對應(yīng)的展示數(shù)據(jù)中的動畫幀。
由于現(xiàn)有技術(shù)中,終端在屏幕的4個顯示區(qū)域分別顯示一條展示數(shù)據(jù),這4個顯示區(qū)域刷新展示數(shù)據(jù)中的動畫幀的過程互相獨立,因此,CPU需要分別對4個顯示區(qū)域中的動畫幀進行刷新,當(dāng)不同顯示區(qū)域中的刷新步調(diào)不一致時,CPU刷新動畫幀的次數(shù)較多,工作負荷較大。
假設(shè)CPU對顯示在顯示區(qū)域1中的展示數(shù)據(jù)的動畫幀在時刻1以10幀/s的速率刷新;對顯示在顯示區(qū)域2中的展示數(shù)據(jù)的動畫幀在時刻2以10幀/s的速率刷新;對顯示在顯示區(qū)域3中的展示數(shù)據(jù)的動畫幀在時刻3以10幀/s的速率刷新;對顯示在顯示區(qū)域4中的展示數(shù)據(jù)的動畫幀在時刻4以10幀/s的速率刷新,其中,時刻1、時刻2、時刻3和時刻4為互不相同的時間點,則CPU對每屏幕顯示的動畫幀每秒需要刷新4×10幀/s=40次。
而在本實施例中,由于終端以定時器的啟動時刻為起始刷新時間點,按照相同的刷新頻率在每個顯示區(qū)域刷新對應(yīng)的展示數(shù)據(jù)中的動畫幀,因此,對于顯示頁面中不同顯示區(qū)域顯示的展示數(shù)據(jù),CPU以相同的步調(diào)刷新動畫幀,降低了CPU的工作負荷。
假設(shè)CPU對顯示在顯示區(qū)域1中的展示數(shù)據(jù)的動畫幀在時刻1以10幀/s的速率刷新;對顯示在顯示區(qū)域2中的展示數(shù)據(jù)的動畫幀在時刻1以10幀/s的速率刷新;對顯示在顯示區(qū)域3中的展示數(shù)據(jù)的動畫幀在時刻1以10幀/s的速率刷新;對顯示在顯示區(qū)域4中的展示數(shù)據(jù)的動畫幀在時刻1以10幀/s的速率刷新,由于CPU同時刷新顯示區(qū)域1、顯示區(qū)域2、顯示區(qū)域3和顯示區(qū)域4的動畫幀,因此,CPU對每屏幕顯示的動畫幀每秒僅需要刷新1×10幀/s=10次。結(jié)合上述相關(guān)技術(shù)中的實例可知,CPU每屏幕可以少刷新30次動畫幀,降低了CPU的工作負荷。
參考圖3所示的在4個顯示區(qū)域顯示的動畫效果33,該4個顯示區(qū)域的動畫效果以相同的步調(diào)顯示。
在定時器達到預(yù)設(shè)時長閾值時,再次執(zhí)行步驟203。
需要說明的是,終端會從緩沖區(qū)中刪除CPU刷新顯示過的動畫幀,因此,在定時器達到預(yù)設(shè)時長閾值時,終端下一次獲取到的m條展示數(shù)據(jù)與本次獲取到m條展示數(shù)據(jù)不同。
步驟207,當(dāng)n小于條數(shù)最大值m時,從緩沖區(qū)中獲取n條展示數(shù)據(jù)。
當(dāng)終端接收到的展示數(shù)據(jù)的條數(shù)小于m時,此時,終端從該緩沖區(qū)中獲取全部展示數(shù)據(jù)顯示,即,獲取n條展示數(shù)據(jù)。
步驟208,在直播客戶端的用戶界面中的n個顯示區(qū)域中,以相同的刷新頻率和刷新時間點分別刷新顯示n條展示數(shù)據(jù)中的動畫幀。
當(dāng)緩沖區(qū)中緩存的展示數(shù)據(jù)的條數(shù)為零時,CPU停止刷新顯示動畫幀。
本步驟的相關(guān)描述參見步驟206,本實施例在此不作贅述。
需要說明的是,在步驟203之后可直接執(zhí)行步驟207,本實施例對此不作限定。
綜上所述,本實施例提供的方法,通過從緩沖區(qū)緩存的n條展示數(shù)據(jù)中獲取m條展示數(shù)據(jù);在直播客戶端的用戶界面中的m個顯示區(qū)域中,以相同的刷新頻率和刷新時間點分別刷新顯示m條展示數(shù)據(jù)中的動畫幀;解決了相關(guān)技術(shù)中由于CPU對顯示在不同顯示區(qū)域的動畫幀獨立地刷新,在刷新步調(diào)不同時,每屏每秒刷新動畫幀的次數(shù)過多,CPU工作負荷較大的問題;由于CPU可以同時刷新該m條展示數(shù)據(jù)中的動畫幀,無需分別對m條展示數(shù)據(jù)中的動畫幀進行控制,達到了減少CPU刷新動畫幀的次數(shù),降低CPU的工作負荷的效果。
另外,通過從緩沖區(qū)中獲取條數(shù)最大值m條展示數(shù)據(jù),該條數(shù)最大值是終端每屏顯示展示數(shù)據(jù)的條數(shù)的最大值;由于m的值越大,降低CPU的工作負荷的效果越好,當(dāng)終端同時顯示條數(shù)最大值m條展示數(shù)據(jù)中的動畫幀時,盡可能多地降低了CPU的工作負荷。
另外,通過設(shè)置定時器的預(yù)設(shè)時長閾值與每條展示數(shù)據(jù)的顯示時長相等,保證了終端及時將接收到的展示數(shù)據(jù)進行顯示,盡可能地減少了顯示展示數(shù)據(jù)時的延遲時間。
下述為本發(fā)明裝置實施例,可以用于執(zhí)行本發(fā)明方法實施例。對于本發(fā)明裝置實施例中未披露的細節(jié),請參照本發(fā)明方法實施例。
請參考圖4,其示出了本發(fā)明一個實施例提供的虛擬禮物顯示裝置的框圖。該裝置具有執(zhí)行上述方法示例的功能,功能可以由硬件實現(xiàn),也可以由硬件執(zhí)行相應(yīng)的軟件實現(xiàn)。該裝置可以包括:接收模塊410、緩存模塊420、第一讀取模塊430和第一顯示模塊440。
接收模塊410,用于接收服務(wù)器發(fā)送的n條展示數(shù)據(jù),展示數(shù)據(jù)包括用于展示虛擬禮物對應(yīng)的一組動畫幀,n為大于等于2的整數(shù);
緩存模塊420,用于將n條展示數(shù)據(jù)緩存在緩沖區(qū)中;
第一讀取模塊430,用于從緩沖區(qū)中讀取m條展示數(shù)據(jù),m為大于等于2的整數(shù);
第一顯示模塊440,用于在直播客戶端的用戶界面中的m個顯示區(qū)域中,以相同的刷新頻率和刷新時間點分別刷新顯示m條展示數(shù)據(jù)中的動畫幀。
綜上所述,本實施例提供的裝置,通過從緩沖區(qū)緩存的n條展示數(shù)據(jù)中獲取m條展示數(shù)據(jù);在直播客戶端的用戶界面中的m個顯示區(qū)域中,以相同的刷新頻率和刷新時間點分別刷新顯示m條展示數(shù)據(jù)中的動畫幀;解決了相關(guān)技術(shù)中由于CPU對顯示在不同顯示區(qū)域的動畫幀獨立地刷新,在刷新步調(diào)不同時,每屏每秒刷新動畫幀的次數(shù)過多,CPU工作負荷較大的問題;由于CPU可以同時刷新該m條展示數(shù)據(jù)中的動畫幀,無需分別對m條展示數(shù)據(jù)中的動畫幀進行控制,達到了減少CPU刷新動畫幀的次數(shù),降低CPU的工作負荷的效果。
請參考圖5,其示出了本發(fā)明一個實施例提供的虛擬禮物顯示裝置的框圖。該裝置具有執(zhí)行上述方法示例的功能,功能可以由硬件實現(xiàn),也可以由硬件執(zhí)行相應(yīng)的軟件實現(xiàn)。該裝置可以包括:接收模塊410、緩存模塊420、第一讀取模塊430和第一顯示模塊440。
接收模塊410,用于接收服務(wù)器發(fā)送的n條展示數(shù)據(jù),展示數(shù)據(jù)包括用于展示虛擬禮物對應(yīng)的一組動畫幀,n為大于等于2的整數(shù);
緩存模塊420,用于將n條展示數(shù)據(jù)緩存在緩沖區(qū)中;
第一讀取模塊430,用于從緩沖區(qū)中讀取m條展示數(shù)據(jù),m為大于等于2的整數(shù);
第一顯示模塊440,用于在直播客戶端的用戶界面中的m個顯示區(qū)域中,以相同的刷新頻率和刷新時間點分別刷新顯示m條展示數(shù)據(jù)中的動畫幀。
可選地,第一顯示模塊440,包括:啟動單元441和顯示單元442。
啟動單元441,用于啟動預(yù)設(shè)時長閾值的定時器;
顯示單元442,用于以所述定時器的啟動時刻為起始刷新時間點,按照相同的所述刷新頻率在m個所述顯示區(qū)域刷新對應(yīng)的所述展示數(shù)據(jù)中的動畫幀。
可選地,第一讀取模塊430,還用于在所述定時器達到所述預(yù)設(shè)時長閾值時,再次執(zhí)行所述從所述緩沖區(qū)中讀取m條所述展示數(shù)據(jù)的步驟;其中,所述預(yù)設(shè)時長閾值與每條所述展示數(shù)據(jù)的顯示時長相等。
可選地,第一讀取模塊430,包括:獲取單元431和讀取單元432。
獲取單元431,用于獲取所述直播客戶端的用戶界面在同時顯示所述展示數(shù)據(jù)時的條數(shù)最大值m;
讀取單元432,用于當(dāng)所述n大于或等于所述條數(shù)最大值m時,從所述緩沖區(qū)中讀取m條所述展示數(shù)據(jù)。
可選地,該裝置還包括:第二讀取模塊450和第二顯示模塊460。
第二讀取模塊450,用于當(dāng)所述n小于所述條數(shù)最大值m時,從所述緩沖區(qū)中獲取n條所述展示數(shù)據(jù);
第二顯示模塊460,用于在直播客戶端的用戶界面中的n個顯示區(qū)域中,以相同的刷新頻率和刷新時間點分別刷新顯示n條所述展示數(shù)據(jù)中的所述動畫幀。
綜上所述,本實施例提供的裝置,通過從緩沖區(qū)緩存的n條展示數(shù)據(jù)中獲取m條展示數(shù)據(jù);在直播客戶端的用戶界面中的m個顯示區(qū)域中,以相同的刷新頻率和刷新時間點分別刷新顯示m條展示數(shù)據(jù)中的動畫幀;解決了相關(guān)技術(shù)中由于CPU對顯示在不同顯示區(qū)域的動畫幀獨立地刷新,在刷新步調(diào)不同時,每屏每秒刷新動畫幀的次數(shù)過多,CPU工作負荷較大的問題;由于CPU可以同時刷新該m條展示數(shù)據(jù)中的動畫幀,無需分別對m條展示數(shù)據(jù)中的動畫幀進行控制,達到了減少CPU刷新動畫幀的次數(shù),降低CPU的工作負荷的效果。
另外,通過從緩沖區(qū)中獲取條數(shù)最大值m條展示數(shù)據(jù),該條數(shù)最大值是終端每屏顯示展示數(shù)據(jù)的條數(shù)的最大值;由于m的值越大,降低CPU的工作負荷的效果越好,當(dāng)終端同時顯示條數(shù)最大值m條展示數(shù)據(jù)中的動畫幀時,盡可能多地降低了CPU的工作負荷。
另外,通過設(shè)置定時器的預(yù)設(shè)時長閾值與每條展示數(shù)據(jù)的顯示時長相等,保證了終端及時將接收到的展示數(shù)據(jù)進行顯示,盡可能地減少了顯示展示數(shù)據(jù)時的延遲時間。
需要說明的是:上述實施例提供的裝置在實現(xiàn)其功能時,僅以上述各功能模塊的劃分進行舉例說明,實際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將設(shè)備的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實施例提供的裝置與方法實施例屬于同一構(gòu)思,其具體實現(xiàn)過程詳見方法實施例,這里不再贅述。
請參考圖6,其示出了本發(fā)明一個實施例提供的終端的結(jié)構(gòu)示意圖。該終端600用于實施上述實施例中提供的虛擬禮物顯示方法。具體來講:
終端600可以包括RF(Radio Frequency,射頻)電路610、包括有一個或一個以上計算機可讀存儲介質(zhì)的存儲器620、輸入單元630、顯示單元640、傳感器650、音頻電路660、WiFi(wireless fidelity,無線保真)模塊670、包括有一個或者一個以上處理核心的處理器680、以及電源690等部件。本領(lǐng)域技術(shù)人員可以理解,圖6中示出的終端結(jié)構(gòu)并不構(gòu)成對終端的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。其中:
RF電路610可用于收發(fā)信息或通話過程中,信號的接收和發(fā)送,特別地,將基站的下行信息接收后,交由一個或者一個以上處理器680處理;另外,將涉及上行的數(shù)據(jù)發(fā)送給基站。通常,RF電路610包括但不限于天線、至少一個放大器、調(diào)諧器、一個或多個振蕩器、用戶身份模塊(SIM)卡、收發(fā)信機、耦合器、LNA(Low Noise Amplifier,低噪聲放大器)、雙工器等。此外,RF電路610還可以通過無線通信與網(wǎng)絡(luò)和其他設(shè)備通信。所述無線通信可以使用任一通信標(biāo)準(zhǔn)或協(xié)議,包括但不限于GSM(Global System of Mobile communication,全球移動通訊系統(tǒng))、GPRS(General Packet Radio Service,通用分組無線服務(wù))、CDMA(Code Division Multiple Access,碼分多址)、WCDMA(Wideband Code Division Multiple Access,寬帶碼分多址)、LTE(Long Term Evolution,長期演進)、電子郵件、SMS(Short Messaging Service,短消息服務(wù))等。
存儲器620可用于存儲軟件程序以及模塊,處理器680通過運行存儲在存儲器620的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理。存儲器620可主要包括存儲程序區(qū)和存儲數(shù)據(jù)區(qū),其中,存儲程序區(qū)可存儲操作系統(tǒng)、至少一個功能所需的應(yīng)用程序(比如聲音播放功能、圖像播放功能等)等;存儲數(shù)據(jù)區(qū)可存儲根據(jù)終端600的使用所創(chuàng)建的數(shù)據(jù)(比如音頻數(shù)據(jù)、電話本等)等。此外,存儲器620可以包括高速隨機存取存儲器,還可以包括非易失性存儲器,例如至少一個磁盤存儲器件、閃存器件、或其他易失性固態(tài)存儲器件。相應(yīng)地,存儲器620還可以包括存儲器控制器,以提供處理器680和輸入單元630對存儲器620的訪問。
輸入單元630可用于接收輸入的數(shù)字或字符信息,以及產(chǎn)生與用戶設(shè)置以及功能控制有關(guān)的鍵盤、鼠標(biāo)、操作桿、光學(xué)或者軌跡球信號輸入。具體地,輸入單元630可包括圖像輸入設(shè)備631以及其他輸入設(shè)備632。圖像輸入設(shè)備631可以是攝像頭,也可以是光電掃描設(shè)備。除了圖像輸入設(shè)備631,輸入單元630還可以包括其他輸入設(shè)備632。具體地,其他輸入設(shè)備632可以包括但不限于物理鍵盤、功能鍵(比如音量控制按鍵、開關(guān)按鍵等)、軌跡球、鼠標(biāo)、操作桿等中的一種或多種。
顯示單元640可用于顯示由用戶輸入的信息或提供給用戶的信息以及終端600的各種圖形用戶接口,這些圖形用戶接口可以由圖形、文本、圖標(biāo)、視頻和其任意組合來構(gòu)成。顯示單元640可包括顯示面板641,可選地,可以采用LCD(Liquid Crystal Display,液晶顯示器)、OLED(Organic Light-Emitting Diode,有機發(fā)光二極管)等形式來配置顯示面板641。
終端600還可包括至少一種傳感器650,比如光傳感器、運動傳感器以及其他傳感器。具體地,光傳感器可包括環(huán)境光傳感器及接近傳感器,其中,環(huán)境光傳感器可根據(jù)環(huán)境光線的明暗來調(diào)節(jié)顯示面板641的亮度,接近傳感器可在終端600移動到耳邊時,關(guān)閉顯示面板641和/或背光。作為運動傳感器的一種,重力加速度傳感器可檢測各個方向上(一般為三軸)加速度的大小,靜止時可檢測出重力的大小及方向,可用于識別手機姿態(tài)的應(yīng)用(比如橫豎屏切換、相關(guān)游戲、磁力計姿態(tài)校準(zhǔn))、振動識別相關(guān)功能(比如計步器、敲擊)等;至于終端600還可配置的陀螺儀、氣壓計、濕度計、溫度計、紅外線傳感器等其他傳感器,在此不再贅述。
音頻電路660、揚聲器661,傳聲器662可提供用戶與終端600之間的音頻接口。音頻電路660可將接收到的音頻數(shù)據(jù)轉(zhuǎn)換后的電信號,傳輸?shù)綋P聲器661,由揚聲器661轉(zhuǎn)換為聲音信號輸出;另一方面,傳聲器662將收集的聲音信號轉(zhuǎn)換為電信號,由音頻電路660接收后轉(zhuǎn)換為音頻數(shù)據(jù),再將音頻數(shù)據(jù)輸出處理器680處理后,經(jīng)RF電路610以發(fā)送給比如另一終端,或者將音頻數(shù)據(jù)輸出至存儲器620以便進一步處理。音頻電路660還可能包括耳塞插孔,以提供外設(shè)耳機與終端600的通信。
WiFi屬于短距離無線傳輸技術(shù),終端600通過WiFi模塊670可以幫助用戶收發(fā)電子郵件、瀏覽網(wǎng)頁和訪問流式媒體等,它為用戶提供了無線的寬帶互聯(lián)網(wǎng)訪問。雖然圖6示出了WiFi模塊670,但是可以理解的是,其并不屬于終端600的必須構(gòu)成,完全可以根據(jù)需要在不改變發(fā)明的本質(zhì)的范圍內(nèi)而省略。
處理器680是終端600的控制中心,利用各種接口和線路連接整個手機的各個部分,通過運行或執(zhí)行存儲在存儲器620內(nèi)的軟件程序和/或模塊,以及調(diào)用存儲在存儲器620內(nèi)的數(shù)據(jù),執(zhí)行終端600的各種功能和處理數(shù)據(jù),從而對手機進行整體監(jiān)控??蛇x地,處理器680可包括一個或多個處理核心;優(yōu)選的,處理器680可集成應(yīng)用處理器和調(diào)制解調(diào)處理器,其中,應(yīng)用處理器主要處理操作系統(tǒng)、用戶界面和應(yīng)用程序等,調(diào)制解調(diào)處理器主要處理無線通信??梢岳斫獾氖?,上述調(diào)制解調(diào)處理器也可以不集成到處理器680中。
終端600還包括給各個部件供電的電源690(比如電池),優(yōu)選的,電源可以通過電源管理系統(tǒng)與處理器680邏輯相連,從而通過電源管理系統(tǒng)實現(xiàn)管理充電、放電、以及功耗管理等功能。電源690還可以包括一個或一個以上的直流或交流電源、再充電系統(tǒng)、電源故障檢測電路、電源轉(zhuǎn)換器或者逆變器、電源狀態(tài)指示器等任意組件。
盡管未示出,終端600還可以包括藍牙模塊等,在此不再贅述。
具體在本實施例中,終端600還包括有存儲器,以及一個或者一個以上的程序,其中一個或者一個以上程序存儲于存儲器中,且經(jīng)配置以由一個或者一個以上處理器執(zhí)行。上述一個或者一個以上程序包含用于執(zhí)行上述方法的指令。
應(yīng)當(dāng)理解的是,在本文中提及的“多個”是指兩個或兩個以上?!昂?或”,描述關(guān)聯(lián)對象的關(guān)聯(lián)關(guān)系,表示可以存在三種關(guān)系,例如,A和/或B,可以表示:單獨存在A,同時存在A和B,單獨存在B這三種情況。字符“/”一般表示前后關(guān)聯(lián)對象是一種“或”的關(guān)系。
上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質(zhì)中,上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。
以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。