本申請涉及視頻直播技術(shù)領(lǐng)域,尤其涉及一種視頻直播中的界面交互方法及直播客戶端。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,基于互聯(lián)網(wǎng)的視頻直播技術(shù)越來越廣泛。用戶通過直播,可以實時觀看新聞事件、實時賽事等直播節(jié)目,并且在觀看過程中還可以參與互動。
直播間界面是用戶參與直播互動的入口,同時直播間界面的友好與否也是影響用戶與主播之間的互動性和直播間人氣的主要因素之一。另外,直播間界面與其它模塊之間的交互也是用戶成功參與直播互動的必要條件。
因此,如何在改善直播間界面的友好性的同時,保證直播間界面與其它模塊之間的交互是開發(fā)直播應(yīng)用有待解決的一大問題。
技術(shù)實現(xiàn)要素:
本申請的多個方面提供一種視頻直播中的界面交互方法及直播客戶端,用以提高直播間界面的友好性,同時保證直播間界面與其它模塊之間的交互。
本申請實施例提供一種視頻直播中的界面交互方法,適用于直播客戶端,所述直播客戶端包括:基于ios開發(fā)的主程序和基于unity開發(fā)的界面軟件開發(fā)工具包sdk,所述方法包括:
所述主程序調(diào)用所述界面sdk中的直播間打開接口,以向所述界面sdk傳入直播間參數(shù);
所述界面sdk根據(jù)所述直播間參數(shù),實例化直播間對象,以創(chuàng)建一直播間;
所述界面sdk在所述直播間客戶端提供的直播間顯示界面上展示所述直播間。
在一可選實施方式中,所述的方法還包括:所述界面sdk通過所述主程序中的非界面sdk接口,與非界面sdk進(jìn)行交互。
在一可選實施方式中,所述界面sdk通過所述主程序中的非界面sdk接口,與非界面sdk進(jìn)行交互,包括以下至少一種:
所述界面sdk通過所述主程序中的登錄sdk接口,與登錄sdk進(jìn)行交互;
所述界面sdk通過所述主程序中的彈幕sdk接口,與彈幕sdk進(jìn)行交互;
所述界面sdk通過所述主程序中的充值sdk接口,與充值sdk進(jìn)行交互;
所述界面sdk通過所述主程序中的網(wǎng)絡(luò)sdk接口,與網(wǎng)絡(luò)sdk進(jìn)行交互。
在一可選實施方式中,所述界面sdk通過所述主程序中的登錄sdk接口,與登錄sdk進(jìn)行交互,包括:
所述界面sdk響應(yīng)于用戶在所述直播間觸發(fā)的登錄操作,確定所述用戶為非登錄用戶;
所述界面sdk通過所述登錄sdk接口調(diào)用所述登錄sdk;
所述登錄sdk向所述用戶展示登錄界面,以供所述用戶輸入登錄信息;
所述登錄sdk在根據(jù)所述登錄信息確認(rèn)所述用戶成功登錄后,向所述界面sdk返回登錄成功消息;
所述界面sdk根據(jù)所述登錄成功消息,執(zhí)行相應(yīng)操作。
在一可選實施方式中,所述界面sdk通過所述主程序中的彈幕sdk接口,與彈幕sdk進(jìn)行交互,包括:
所述界面sdk響應(yīng)于用戶在所述直播間開啟彈幕的操作,通過所述彈幕sdk接口向所述彈幕sdk傳入所述直播間的房間號;
所述彈幕sdk根據(jù)所述房間號從直播服務(wù)端獲取所述直播間中的彈幕消息;
所述彈幕sdk將所述彈幕消息返回給所述界面sdk;
所述界面sdk在所述直播間的界面上展示所述彈幕消息。
在一可選實施方式中,所述彈幕sdk根據(jù)所述房間號從直播服務(wù)端獲取所述直播間中的彈幕消息,包括:
所述彈幕sdk根據(jù)所述房間號實例化一個彈幕類;
所述彈幕類根據(jù)所述房間號從所述直播服務(wù)端獲取彈幕長鏈接的參數(shù);
所述彈幕類根據(jù)所述彈幕長鏈接的參數(shù),創(chuàng)建彈幕長鏈接對象;
所述彈幕長鏈接對象從所述直播服務(wù)端獲取所述彈幕消息。
在一可選實施方式中,所述界面sdk通過所述主程序中的充值sdk接口,與充值sdk進(jìn)行交互,包括:
所述界面sdk響應(yīng)于用戶在所述直播間進(jìn)行充值的操作,通過所述充值sdk接口調(diào)用所述充值sdk;
所述充值sdk向所述用戶展示充值界面,以供所述用戶進(jìn)行充值操作;
所述充值sdk向所述界面sdk返回充值成功消息;
所述界面sdk根據(jù)所述充值成功消息,向所述用戶展示所述直播間。
在一可選實施方式中,所述界面sdk通過所述主程序中的網(wǎng)絡(luò)sdk接口,與網(wǎng)絡(luò)sdk進(jìn)行交互,包括:
所述界面sdk通過所述網(wǎng)絡(luò)sdk接口向所述網(wǎng)絡(luò)sdk傳入網(wǎng)絡(luò)訪問參數(shù);
所述網(wǎng)絡(luò)sdk根據(jù)所述網(wǎng)絡(luò)訪問參數(shù)訪問網(wǎng)絡(luò)服務(wù)器,以獲取網(wǎng)絡(luò)數(shù)據(jù);
所述網(wǎng)絡(luò)sdk將所述網(wǎng)絡(luò)數(shù)據(jù)返回給所述界面sdk;
所述界面sdk接收所述網(wǎng)絡(luò)數(shù)據(jù)。
本申請實施例還提供一種直播客戶端,包括:基于ios開發(fā)的主程序模塊和基于unity開發(fā)的界面sdk模塊;
所述主程序模塊,用于調(diào)用所述界面sdk模塊中的直播間打開接口,以向所述界面sdk模塊傳入直播間參數(shù);
所述界面sdk模塊,用于根據(jù)所述直播間參數(shù),實例化直播間對象,以創(chuàng)建一直播間,以及在所述直播間客戶端提供的直播間顯示界面上展示所述直播間。
在一可選實施方式中,所述直播客戶端還包括:非界面sdk模塊,用于實現(xiàn)所述直播客戶端中的非界面功能;所述界面sdk模塊還用于:通過所述主程序模塊中的非界面sdk接口,與所述非界面sdk模塊進(jìn)行交互。
在一可選實施方式中,所述界面sdk模塊具體用于執(zhí)行以下至少一種操作:
通過所述主程序中的登錄sdk接口,與登錄sdk模塊進(jìn)行交互;
通過所述主程序中的彈幕sdk接口,與彈幕sdk模塊進(jìn)行交互;
通過所述主程序中的充值sdk接口,與充值sdk模塊進(jìn)行交互;
通過所述主程序中的網(wǎng)絡(luò)sdk接口,與網(wǎng)絡(luò)sdk模塊進(jìn)行交互。
在一可選實施方式中,所述界面sdk模塊具體用于:響應(yīng)于用戶在所述直播間觸發(fā)的登錄操作,確定所述用戶為非登錄用戶;通過所述登錄sdk接口調(diào)用所述登錄sdk模塊;以及根據(jù)所述登錄sdk模塊返回的登錄成功消息,執(zhí)行相應(yīng)操作;
所述登錄sdk模塊具體用于:向所述用戶展示登錄界面,以供所述用戶輸入登錄信息;以及在根據(jù)所述登錄信息確認(rèn)所述用戶成功登錄后,向所述界面sdk返回登錄成功消息。
在一可選實施方式中,所述界面sdk模塊具體用于:響應(yīng)于用戶在所述直播間開啟彈幕的操作,通過所述彈幕sdk接口向所述彈幕sdk模塊傳入所述直播間的房間號;以及在所述直播間的界面上展示所述彈幕sdk模塊返回的彈幕消息;
所述彈幕sdk模塊具體用于:根據(jù)所述房間號從直播服務(wù)端獲取所述直播間中的彈幕消息;以及將所述彈幕消息返回給所述界面sdk模塊。
在一可選實施方式中,所述彈幕sdk模塊在根據(jù)所述房間號從直播服務(wù)端獲取所述直播間中的彈幕消息時,具體用于:根據(jù)所述房間號實例化一個彈幕類;所述彈幕類根據(jù)所述房間號從所述直播服務(wù)端獲取彈幕長鏈接的參數(shù);所述彈幕類根據(jù)所述彈幕長鏈接的參數(shù),創(chuàng)建彈幕長鏈接對象;所述彈幕長鏈接對象從所述直播服務(wù)端獲取所述彈幕消息。
在一可選實施方式中,所述界面sdk模塊具體用于:響應(yīng)于用戶在所述直播間進(jìn)行充值的操作,通過所述充值sdk接口調(diào)用所述充值sdk模塊;以及根據(jù)所述充值sdk模塊返回的充值成功消息,向所述用戶展示所述直播間;
所述充值sdk模塊具體用于:向所述用戶展示充值界面,以供所述用戶進(jìn)行充值操作;以及向所述界面sdk模塊返回充值成功消息。
在一可選實施方式中,所述界面sdk模塊具體用于:通過所述網(wǎng)絡(luò)sdk接口向所述網(wǎng)絡(luò)sdk模塊傳入網(wǎng)絡(luò)訪問參數(shù);以及接收所述網(wǎng)絡(luò)sdk模塊返回的網(wǎng)絡(luò)數(shù)據(jù);
所述網(wǎng)絡(luò)sdk模塊具體用于:根據(jù)所述網(wǎng)絡(luò)訪問參數(shù)訪問網(wǎng)絡(luò)服務(wù)器,以獲取網(wǎng)絡(luò)數(shù)據(jù);以及將所述網(wǎng)絡(luò)數(shù)據(jù)返回給所述界面sdk模塊。
在本申請實施例中,將unity與ios相結(jié)合,利用unity開發(fā)直播間界面,使得直播間界面可以更加豐富多彩,有利于提高直播間界面的友好程度;另外,通過將unity實現(xiàn)的界面代碼封裝成sdk,使得ios開發(fā)的主程序可以調(diào)用界面sdk以向用戶提供豐富多彩的直播間界面。由此可見,本申請實施例不僅提高了直播間界面的友好程度,同時可以保證直播間界面與其它模塊之間的交互。
附圖說明
此處所說明的附圖用來提供對本申請的進(jìn)一步理解,構(gòu)成本申請的一部分,本申請的示意性實施例及其說明用于解釋本申請,并不構(gòu)成對本申請的不當(dāng)限定。在附圖中:
圖1為本申請一實施例提供的視頻直播中的界面交互方法的流程示意圖;
圖2為本申請另一實施例提供的視頻直播中的界面交互方法的流程示意圖;
圖3為本申請又一實施例提供的視頻直播中的界面交互方法的流程示意圖;
圖4為本申請又一實施例提供的視頻直播中的界面交互方法的流程示意圖;
圖5為本申請又一實施例提供的視頻直播中的界面交互方法的流程示意圖;
圖6為本申請又一實施例提供的直播客戶端的結(jié)構(gòu)示意圖;
圖7為本申請又一實施例提供的直播客戶端的結(jié)構(gòu)示意圖。
具體實施方式
為使本申請的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本申請具體實施例及相應(yīng)的附圖對本申請技術(shù)方案進(jìn)行清楚、完整地描述。顯然,所描述的實施例僅是本申請一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├绢I(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護(hù)的范圍。
為了在直播應(yīng)用中,提供更加豐富多彩、支持更酷更炫動畫效果的直播間界面,本申請發(fā)明人想到利用unity開發(fā)直播間界面。unity是一種跨平臺可視化的游戲引擎,能夠開發(fā)出豐富多彩的界面,還可以開發(fā)出2d或3d的界面。因此,利用unity開發(fā)直播間界面,可以解決直播應(yīng)用面臨的界面問題。
直播應(yīng)用除了包括直播間界面之外,還包括與直播間界面進(jìn)行交互的底層業(yè)務(wù)邏輯。在一種應(yīng)用場景中,底層業(yè)務(wù)邏輯基于ios實現(xiàn)?;诖?,利用unity開發(fā)直播間界面,需要解決基于ios實現(xiàn)的底層業(yè)務(wù)邏輯與基于unity實現(xiàn)的直播間界面之間互訪的問題。
針對上述技術(shù)問題,本申請發(fā)明人提供一種解決方案,該解決方案主要適用于直播客戶端,在直播客戶端中,基于unity開發(fā)界面代碼,并封裝成框架(framework)形式的軟件開發(fā)工具包(softwaredevelopmentkit,sdk),稱之為界面sdk;基于ios開發(fā)直播客戶端的主程序,界面sdk向主程序暴露訪問接口,使得主程序可以調(diào)用界面sdk,實現(xiàn)直播間界面。
以下結(jié)合附圖,詳細(xì)說明本申請各實施例提供的技術(shù)方案。
圖1為本申請一實施例提供的視頻直播中的界面交互方法的流程示意圖。該方法適用于直播客戶端,直播客戶端包括:基于ios開發(fā)的主程序和基于unity開發(fā)的界面sdk。如圖1所示,所述方法包括:
101、直播客戶端中基于ios開發(fā)的主程序調(diào)用直播客戶端中基于unity開發(fā)的界面sdk中的直播間打開接口,以向界面sdk傳入直播間參數(shù)。
在步驟101中,主程序調(diào)用界面sdk的目的是打開一直播間,主程序需要打開的直播間可通過所述直播間參數(shù)唯一標(biāo)識。所述直播間參數(shù)可以包括但不限于:直播間的房間號、直播間的封面以及直播間中視頻流的地址等。
界面sdk向主程序暴露打開直播間的接口,該接口被稱為直播間打開接口。主程序通過調(diào)用直播間打開接口即可向界面sdk傳入直播間參數(shù),進(jìn)而觸發(fā)界面sdk執(zhí)行相應(yīng)操作,以創(chuàng)建所述直播間參數(shù)所標(biāo)識的直播間。
102、界面sdk根據(jù)直播間參數(shù),實例化直播間對象,以創(chuàng)建一直播間。
在步驟102中,界面sdk根據(jù)主程序傳入的直播間參數(shù),實例化直播間對象,從而創(chuàng)建一直播間,該直播間即為主程序需要打開的直播間。
其中,實例化直播間對象的過程主要包括:通過直播間對象構(gòu)建一直播間實例;對直播間實例進(jìn)行參數(shù)設(shè)置,例如將主程序傳入的房間號設(shè)置為直播間實例的房間id,并將主程序傳入的封面設(shè)置為直播間實例的封面,以及將主程序傳入的視頻流的地址設(shè)置為直播間實例的直播源,完成直播間的創(chuàng)建。
103、界面sdk在直播間客戶端提供的直播間顯示界面上展示所創(chuàng)建的直播間。
在步驟103中,界面sdk在直播間客戶端提供的直播間顯示界面上展示所創(chuàng)建的直播間,實際上是在直播間顯示界面上播放直播間中的直播視頻流。
在本實施例中,將unity與ios相結(jié)合,利用unity開發(fā)直播間界面,使得直播間界面可以更加豐富多彩,有利于提高直播間界面的友好程度;另外,通過將unity實現(xiàn)的界面代碼封裝成sdk,使得ios開發(fā)的主程序可以調(diào)用界面sdk以向用戶提供豐富多彩的直播間界面。由此可見,本實施例不僅提高了直播間界面的友好程度,同時可以保證直播間界面與主程序之間的交互,實現(xiàn)示直播間界面的展示。
在上述實施例或下述實施例中,主程序主要負(fù)責(zé)直播客戶端的整體控制邏輯。除了主程序之外,直播客戶端還包括很多其它的功能模塊,例如負(fù)責(zé)實現(xiàn)彈幕功能的彈幕模塊、負(fù)責(zé)實現(xiàn)網(wǎng)絡(luò)通信的網(wǎng)絡(luò)模塊、負(fù)責(zé)實現(xiàn)用戶登錄功能的登錄模塊等。其中,主程序通過調(diào)用不同的功能模塊實現(xiàn)直播客戶端的不同功能。為了便于主程序調(diào)用這些模塊,在本申請實施例中,將這些功能模塊封裝成框架(framework)形式的sdk。為了與界面sdk相區(qū)分,將這些實現(xiàn)其它功能的sdk稱之為非界面sdk。
在直播場景中,主程序調(diào)用界面sdk向用戶提供直播間之外,在直播間中還會向用戶提供一些互動入口,例如贈送虛擬禮物的入口、充值入口、開啟/關(guān)閉彈幕的入口等。基于這些入口,用戶在直播過程中可以參與直播互動或者觸發(fā)一些操作。相應(yīng)地,界面sdk還需要與其它非界面sdk進(jìn)行交互。為了便于界面sdk與非界面sdk進(jìn)行交互,在主程序中提供非界面sdk接口并將這些接口暴露給界面sdk,這樣界面sdk可以通過主程序中的非界面sdk接口,與非界面sdk進(jìn)行交互。
可選地,在直播場景中,與界面sdk具有交互的非界面sdk包括但不限于以下幾種:登錄sdk、彈幕sdk、充值sdk、網(wǎng)絡(luò)sdk等。相應(yīng)地,界面sdk與非界面sdk之間的交互包括但不限于以下幾種:
例如,在主程序中可以提供登錄sdk接口?;诖?,界面sdk可以通過主程序中的登錄sdk接口,與登錄sdk進(jìn)行交互。
又例如,在主程序中可以提供彈幕sdk接口?;诖耍缑鎠dk通過所述主程序中的彈幕sdk接口,與彈幕sdk進(jìn)行交互.
又例如,在主程序中可以提供充值sdk接口。基于此,界面sdk通過所述主程序中的充值sdk接口,與充值sdk進(jìn)行交互。
又例如,在主程序中可以提供網(wǎng)絡(luò)sdk接口?;诖?,界面sdk通過所述主程序中的網(wǎng)絡(luò)sdk接口,與網(wǎng)絡(luò)sdk進(jìn)行交互。
下面通過具體實施例對上述列舉的界面sdk與非界面sdk之間的交互過程進(jìn)行詳細(xì)說明。
圖2為本申請另一實施例提供的視頻直播中的界面交互方法的流程示意圖。如圖2所示,所述方法包括:
201、直播客戶端中基于ios開發(fā)的主程序調(diào)用直播客戶端中基于unity開發(fā)的界面sdk中的直播間打開接口,以向界面sdk傳入直播間參數(shù)。
202、界面sdk根據(jù)直播間參數(shù),實例化直播間對象,以創(chuàng)建一直播間。
203、界面sdk在直播間客戶端提供的直播間顯示界面上展示所創(chuàng)建的直播間。
上述步驟201-203可參見圖1所示方法實施例中步驟101-103的描述,在此不再贅述。
204、界面sdk響應(yīng)于用戶在直播間觸發(fā)的登錄操作,確定用戶為非登錄用戶。
在步驟203展示的直播間上包括禮物贈送控件,用戶通過點擊禮物贈送控件可以向直播間的主播贈送虛擬禮物,例如虛擬玫瑰花、虛擬佛跳墻等。用戶向主播贈送虛擬禮物,要求用戶必須是登錄用戶。或者
在步驟203展示的直播間上包括評論控件,用戶可以點擊評論控件可以發(fā)表評論。用戶發(fā)表評論,要求用戶必須是登錄用戶?;蛘?/p>
在步驟203展示的直播間上包括領(lǐng)取竹子的控件,用戶可以點擊領(lǐng)取竹子的控件領(lǐng)取竹子。用戶領(lǐng)取竹子,要求用戶必須是登錄用戶?;蛘?/p>
在步驟203展示的直播間上包括關(guān)注主播的控件,用戶可以點擊關(guān)注主播的控件關(guān)注主播。用戶關(guān)注主播,要求用戶必須是登錄用戶。
上述操作都會觸發(fā)界面sdk識別用戶是否為登錄用戶的操作。
在步驟204中,界面sdk可響應(yīng)于用戶在直播間觸發(fā)的登錄操作,例如贈送虛擬禮物的操作或者點擊關(guān)注主播的控件對主播進(jìn)行關(guān)注的操作,然后識別該用戶是否為登錄用戶。
可選地,若識別到用戶為登錄用戶,即用戶已經(jīng)登錄,則可以直接執(zhí)行被用戶點擊的控件對應(yīng)的操作,例如在直播間的界面上展示用戶贈送給主播的虛擬禮物,或者允許用戶關(guān)注主播等。
可選地,若識別到用戶為非未登錄用戶,即用戶尚未登錄,則需執(zhí)行步驟205,通過調(diào)用直播客戶端的登錄sdk讓用戶完成登錄操作。
205、界面sdk通過主程序中的登錄sdk接口調(diào)用直播客戶端中的登錄sdk。
在步驟205中,直播客戶端包括登錄sdk,以實現(xiàn)直播客戶端中的用戶登錄功能。主程序向界面sdk暴露登錄sdk的接口,即登錄sdk接口。界面sdk通過主程序中的登錄sdk接口,調(diào)用登錄sdk,以使得登錄sdk執(zhí)行用戶登錄流程供用戶完成登錄操作。其中,登錄sdk執(zhí)行的用戶登錄流程可參見步驟206。
206、登錄sdk向用戶展示登錄界面,以供用戶輸入登錄信息。
在步驟206中,登錄sdk向用戶展示登錄界面,該登錄界面包括用戶登錄所需的信息項,例如賬號id、密碼等。用戶在登錄界面上輸入登錄信息,例如賬號id和密碼,然后點擊登錄或提交按鈕,完成登錄操作。
207、登錄sdk在根據(jù)登錄信息確認(rèn)用戶成功登錄后,向界面sdk返回登錄成功消息。
在步驟207中,登錄sdk獲取用戶輸入的登錄信息,將用戶輸入的登錄信息與用戶預(yù)先注冊的登錄信息進(jìn)行比較;若兩者一致,確定用戶為合法用戶,允許用戶進(jìn)行登錄;若兩者不一致,確定用戶為非法用戶,拒絕用戶登錄,可選的,此時可以向用戶返回登錄失敗的提示信息。
其中,本實施例的登錄sdk與現(xiàn)有登錄sdk不同,本實施例的登錄sdk中內(nèi)嵌有向使用對象傳遞成功登錄消息的邏輯,即在確認(rèn)用戶成功登錄之后,還需要將用戶登錄成功的消息返回給界面sdk。這里的界面sdk即為登錄sdk中的使用對象。
208、界面sdk根據(jù)登錄成功消息,執(zhí)行相應(yīng)操作。
在步驟208中,界面sdk接收登錄sdk返回的登錄成功消息,可以確定用戶已經(jīng)成功登錄,于是可以執(zhí)行相應(yīng)操作。例如,界面sdk可以在直播間的界面上展示用戶贈送給主播的虛擬禮物;或者,界面sdk可以讓用戶關(guān)注主播等。
在本實施例中,基于unity開發(fā)的界面sdk除了可以與主程序進(jìn)行交互之外,還可以響應(yīng)于用戶觸發(fā)的登錄操作,與直播客戶端中的登錄sdk進(jìn)行交互,完成用戶的登錄流程。
圖3為本申請又一實施例提供的視頻直播中的界面交互方法的流程示意圖。如圖3所示,所述方法包括:
301、直播客戶端中基于ios開發(fā)的主程序調(diào)用直播客戶端中基于unity開發(fā)的界面sdk中的直播間打開接口,以向界面sdk傳入直播間參數(shù)。
302、界面sdk根據(jù)直播間參數(shù),實例化直播間對象,以創(chuàng)建一直播間。
303、界面sdk在直播間客戶端提供的直播間顯示界面上展示所創(chuàng)建的直播間。
上述步驟301-303可參見圖1所示方法實施例中步驟101-103的描述,在此不再贅述。
304、界面sdk響應(yīng)于用戶在直播間開啟彈幕的操作,通過主程序中的彈幕sdk接口,向直播客戶端中的彈幕sdk傳入直播間的房間號。
在步驟303展示的直播間上包括彈幕控件,用戶通過操作彈幕控件可以開啟彈幕或關(guān)閉彈幕。操作彈幕控件的方式可以是點擊或滑動,但不限于此。如果用戶開啟彈幕,則在直播視頻的過程中會同時顯示彈幕消息;如果用戶關(guān)閉彈幕,則在直播視頻的過程中不會顯示彈幕消息。
在步驟304中,直播客戶端包括彈幕sdk,以實現(xiàn)直播客戶端中的彈幕功能。主程序向界面sdk暴露彈幕sdk的接口,即彈幕sdk接口。界面sdk響應(yīng)于用戶在直播間開啟彈幕的操作,通過主程序中的彈幕sdk接口,調(diào)用直播客戶端中的彈幕sdk,并向彈幕sdk傳入直播間的房間號,以便于彈幕sdk明確獲取哪個直播間中的彈幕信息。
305、彈幕sdk根據(jù)界面sdk傳入的房間號從直播服務(wù)端獲取直播間中的彈幕消息。
在步驟305中,彈幕sdk可以根據(jù)界面sdk傳入的房間號,從直播服務(wù)端獲取相應(yīng)直播間中的彈幕消息。
可選地,彈幕sdk從直播服務(wù)端獲取彈幕消息的方式包括:彈幕sdk根據(jù)界面sdk傳入的房間號實例化一個彈幕類;彈幕類根據(jù)所述房間號從直播服務(wù)端獲取彈幕長鏈接的參數(shù);彈幕類根據(jù)彈幕長鏈接的參數(shù),創(chuàng)建彈幕長鏈接對象;彈幕長鏈接對象從直播服務(wù)端獲取所述彈幕消息。
306、彈幕sdk將彈幕消息返回給界面sdk。
在步驟306中,彈幕sdk獲取到彈幕消息之后,可以將彈幕消息返回給界面sdk。
本實施例的彈幕sdk與現(xiàn)有彈幕sdk不同,本實施例的彈幕sdk中內(nèi)嵌有向使用對象傳遞彈幕消息的邏輯,即在獲取直播間的彈幕消息之后,還需要將彈幕消息返回給界面sdk。這里的界面sdk即為彈幕sdk中的使用對象。
307、界面sdk在直播間的界面上展示彈幕消息。
在步驟307中,界面sdk接收彈幕sdk返回的彈幕消息,然后在直播間的界面上展示彈幕消息。
在本實施例中,基于unity開發(fā)的界面sdk除了可以與主程序進(jìn)行交互之外,還可以響應(yīng)于用戶開啟彈幕的操作,與直播客戶端中的彈幕sdk進(jìn)行交互,完成彈幕的顯示流程。
圖4為本申請又一實施例提供的視頻直播中的界面交互方法的流程示意圖。如圖4所示,所述方法包括:
401、直播客戶端中基于ios開發(fā)的主程序調(diào)用直播客戶端中基于unity開發(fā)的界面sdk中的直播間打開接口,以向界面sdk傳入直播間參數(shù)。
402、界面sdk根據(jù)直播間參數(shù),實例化直播間對象,以創(chuàng)建一直播間。
403、界面sdk在直播間客戶端提供的直播間顯示界面上展示所創(chuàng)建的直播間。
上述步驟401-403可參見圖1所示方法實施例中步驟101-103的描述,在此不再贅述。
404、界面sdk響應(yīng)于用戶在直播間進(jìn)行充值的操作,通過主程序中的充值sdk接口調(diào)用直播客戶端中的充值sdk。
在步驟403展示的直播間上包括充值控件,用戶通過操作充值控件可以進(jìn)行充值。操作充值控件的方式可以是點擊或滑動,但不限于此。例如,直播間的界面上設(shè)有禮物控件,通過點擊禮物控件進(jìn)入禮物詳情頁面,在禮物詳情頁面上除了包括各種禮物圖標(biāo)之外,還包括充值控件,以便于用戶充值。
在步驟404中,直播客戶端包括充值sdk,以實現(xiàn)直播客戶端中的彈幕功能。主程序向界面sdk暴露充值sdk的接口,即充值sdk接口。界面sdk響應(yīng)于用戶在直播間進(jìn)行充值的操作,通過主程序中的充值sdk接口,調(diào)用直播客戶端中的充值sdk,以便于充值sdk為用戶提供充值流程,如步驟405。
405、充值sdk向用戶展示充值界面,以供用戶進(jìn)行充值操作。
在步驟405中,充值sdk可以向用戶展示充值界面,該充值界面包括用戶進(jìn)行充值所需的信息項,例如充值金額、充值方式等。用戶在充值界面上輸入充值信息,然后點擊充值或提交按鈕,完成充值操作。
406、充值sdk向界面sdk返回充值成功消息。
本實施例的充值sdk與現(xiàn)有充值sdk不同,本實施例的充值sdk中內(nèi)嵌有向使用對象傳遞充值成功消息的邏輯,即在確認(rèn)用戶成功充值之后,還需要將用戶成功充值的消息返回給界面sdk。這里的界面sdk即為充值sdk中的使用對象?;诖?,在步驟406中,充值sdk在用戶成功充值之后,向界面sdk返回充值成功消息。
407、界面sdk根據(jù)充值成功消息,重新向用戶展示直播間。
在步驟407中,界面sdk接收充值sdk返回的充值成功消息,可以確定用戶已經(jīng)成功充值,于是可以重新向用戶展示直播間,以供用戶繼續(xù)觀看直播視頻。
在本實施例中,基于unity開發(fā)的界面sdk除了可以與主程序進(jìn)行交互之外,還可以響應(yīng)于用戶觸發(fā)的充值操作,與直播客戶端中的充值sdk進(jìn)行交互,完成用戶的充值流程。
圖5為本申請又一實施例提供的視頻直播中的界面交互方法的流程示意圖。如圖5所示,所述方法包括:
501、直播客戶端中基于ios開發(fā)的主程序調(diào)用直播客戶端中基于unity開發(fā)的界面sdk中的直播間打開接口,以向界面sdk傳入直播間參數(shù)。
502、界面sdk根據(jù)直播間參數(shù),實例化直播間對象,以創(chuàng)建一直播間。
503、界面sdk在直播間客戶端提供的直播間顯示界面上展示所創(chuàng)建的直播間。
上述步驟501-503可參見圖1所示方法實施例中步驟101-103的描述,在此不再贅述。
504、界面sdk通過主程序中的網(wǎng)絡(luò)sdk接口,向直播客戶端的網(wǎng)絡(luò)sdk傳入網(wǎng)絡(luò)訪問參數(shù)。
在步驟504中,直播客戶端包括網(wǎng)絡(luò)sdk,以實現(xiàn)直播客戶端中的網(wǎng)絡(luò)通信功能。主程序向界面sdk暴露網(wǎng)絡(luò)sdk的接口,即網(wǎng)絡(luò)sdk接口。界面sdk在需要網(wǎng)絡(luò)數(shù)據(jù)時,例如需要獲取直播視頻時,可以通過主程序中的網(wǎng)絡(luò)sdk接口,調(diào)用直播客戶端中的網(wǎng)絡(luò)sdk,并向網(wǎng)絡(luò)sdk傳入網(wǎng)絡(luò)訪問參數(shù)。網(wǎng)絡(luò)訪問參數(shù)反映界面sdk需要的網(wǎng)絡(luò)數(shù)據(jù)。例如,網(wǎng)絡(luò)訪問參數(shù)包括但不限于:網(wǎng)絡(luò)數(shù)據(jù)的統(tǒng)一資源定位符(uniformresourcelocator,url)地址、請求類型等。
505、網(wǎng)絡(luò)sdk根據(jù)網(wǎng)絡(luò)訪問參數(shù)訪問網(wǎng)絡(luò)服務(wù)器,以獲取網(wǎng)絡(luò)數(shù)據(jù)。
在步驟505中,網(wǎng)絡(luò)sdk可以根據(jù)網(wǎng)絡(luò)訪問參數(shù)訪問網(wǎng)絡(luò)服務(wù)器,從網(wǎng)絡(luò)服務(wù)器獲取網(wǎng)絡(luò)數(shù)據(jù)。
例如,網(wǎng)絡(luò)sdk可以根據(jù)網(wǎng)絡(luò)訪問參數(shù)中的url地址訪問網(wǎng)絡(luò)服務(wù)器,并向網(wǎng)絡(luò)服務(wù)器發(fā)送數(shù)據(jù)獲取請求,接收網(wǎng)絡(luò)服務(wù)器返回的網(wǎng)絡(luò)數(shù)據(jù)。
506、網(wǎng)絡(luò)sdk將網(wǎng)絡(luò)數(shù)據(jù)返回給界面sdk。
本實施例的網(wǎng)絡(luò)sdk與現(xiàn)有網(wǎng)絡(luò)sdk不同,本實施例的網(wǎng)絡(luò)sdk中內(nèi)嵌有向使用對象傳遞網(wǎng)絡(luò)數(shù)據(jù)的邏輯,即在獲取網(wǎng)絡(luò)數(shù)據(jù)之后,還需要將網(wǎng)絡(luò)數(shù)據(jù)返回給界面sdk。這里的界面sdk即為網(wǎng)絡(luò)sdk中的使用對象?;诖耍诓襟E506中,網(wǎng)絡(luò)sdk在獲取網(wǎng)絡(luò)數(shù)據(jù)之后,將網(wǎng)絡(luò)數(shù)據(jù)返回給界面sdk。
507、界面sdk接收網(wǎng)絡(luò)數(shù)據(jù),并根據(jù)網(wǎng)絡(luò)數(shù)據(jù)執(zhí)行相應(yīng)操作。
在步驟507中,界面sdk接收網(wǎng)絡(luò)sdk返回的網(wǎng)絡(luò)數(shù)據(jù),根據(jù)網(wǎng)絡(luò)數(shù)據(jù)執(zhí)行相應(yīng)操作。
在本實施例中,基于unity開發(fā)的界面sdk除了可以與主程序進(jìn)行交互之外,還可以與直播客戶端中的網(wǎng)絡(luò)sdk進(jìn)行交互,完成網(wǎng)絡(luò)數(shù)據(jù)獲取流程。
需要說明的是,上述實施例所提供方法的各步驟的執(zhí)行主體均可以是同一設(shè)備,或者,該方法也由不同設(shè)備作為執(zhí)行主體。比如,步驟101至步驟103的執(zhí)行主體可以為設(shè)備a;又比如,步驟101和102的執(zhí)行主體可以為設(shè)備a,步驟103的執(zhí)行主體可以為設(shè)備b;等等。
圖6為本申請又一實施例提供的直播客戶端的結(jié)構(gòu)示意圖。如圖6所示,直播客戶端包括:基于ios開發(fā)的主程序模塊61和基于unity開發(fā)的界面sdk模塊62。
主程序模塊61,用于調(diào)用界面sdk模塊62中的直播間打開接口,以向界面sdk模塊62傳入直播間參數(shù)。
界面sdk模塊62,用于根據(jù)主程序模塊61傳入的直播間參數(shù),實例化直播間對象,以創(chuàng)建一直播間,以及在直播間客戶端提供的直播間顯示界面上展示直播間。
在一可選實施方式中,如圖7所示,直播客戶端還包括:非界面sdk模塊63。
非界面sdk模塊63,用于實現(xiàn)直播客戶端中的非界面功能。
相應(yīng)地,界面sdk模塊62還用于:通過主程序模塊61中的非界面sdk接口,與非界面sdk模塊63進(jìn)行交互。
在一可選實施方式中,如圖7所示,非界面sdk模塊63包括但不限于:登錄sdk模塊、彈幕sdk模塊、充值sdk模塊以及網(wǎng)絡(luò)sdk模塊等。相應(yīng)地,非界面sdk接口包括但不限于:登錄sdk接口、彈幕sdk接口、充值sdk接口、以及網(wǎng)絡(luò)sdk接口等。
在一種情況下,界面sdk模塊62具體用于:響應(yīng)于用戶在直播間贈送虛擬禮物的操作,確定用戶為非登錄用戶;通過登錄sdk接口調(diào)用登錄sdk模塊;以及根據(jù)登錄sdk模塊返回的登錄信息,在直播間上展示用戶贈送的虛擬禮物。相應(yīng)地,登錄sdk模塊具體用于:向用戶展示登錄界面,以供用戶輸入登錄信息;以及將登錄信息返回給界面sdk模塊62。
在一種情況下,界面sdk模塊62具體用于:響應(yīng)于用戶在直播間開啟彈幕的操作,通過彈幕sdk接口向彈幕sdk模塊傳入直播間的房間號;以及在直播間的界面上展示彈幕sdk模塊返回的彈幕消息。相應(yīng)地,彈幕sdk模塊具體用于:根據(jù)房間號從直播服務(wù)端獲取直播間中的彈幕消息;以及將彈幕消息返回給界面sdk模塊62。
進(jìn)一步,彈幕sdk模塊在根據(jù)房間號從直播服務(wù)端獲取直播間中的彈幕消息時,具體用于:根據(jù)房間號實例化一個彈幕類;彈幕類根據(jù)房間號從直播服務(wù)端獲取彈幕長鏈接的參數(shù);彈幕類根據(jù)彈幕長鏈接的參數(shù),創(chuàng)建彈幕長鏈接對象;彈幕長鏈接對象從直播服務(wù)端獲取彈幕消息。
在一種情況下,界面sdk模塊62具體用于:響應(yīng)于用戶在直播間進(jìn)行充值的操作,通過充值sdk接口調(diào)用充值sdk模塊;以及根據(jù)充值sdk模塊返回的充值成功消息,向用戶展示直播間。相應(yīng)地,充值sdk模塊具體用于:向用戶展示充值界面,以供用戶進(jìn)行充值操作;以及向界面sdk模塊62返回充值成功消息。
在一種情況下,界面sdk模塊62具體用于:界面sdk模塊具體用于:通過網(wǎng)絡(luò)sdk接口向網(wǎng)絡(luò)sdk模塊傳入網(wǎng)絡(luò)訪問參數(shù);以及接收網(wǎng)絡(luò)sdk模塊返回的網(wǎng)絡(luò)數(shù)據(jù)。相應(yīng)地,網(wǎng)絡(luò)sdk模塊具體用于:根據(jù)網(wǎng)絡(luò)訪問參數(shù)訪問網(wǎng)絡(luò)服務(wù)器,以獲取網(wǎng)絡(luò)數(shù)據(jù);以及將網(wǎng)絡(luò)數(shù)據(jù)返回給界面sdk模塊62。
本實施例提供的直播客戶端,可用于執(zhí)行上述視頻直播中的界面交互方法的流程,其具體工作原理不再贅述。
本實施例提供的直播客戶端,將unity與ios相結(jié)合,利用unity開發(fā)直播間界面,使得直播間界面可以更加豐富多彩,有利于提高直播間界面的友好程度;另外,通過將unity實現(xiàn)的界面代碼封裝成sdk,使得ios開發(fā)的主程序可以調(diào)用界面sdk以向用戶提供豐富多彩的直播間界面。由此可見,本實施例提供的直播客戶端不僅提高了直播間界面的友好程度,同時可以保證直播間界面與其它模塊之間的交互。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、cd-rom、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
在一個典型的配置中,計算設(shè)備包括一個或多個處理器(cpu)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。
內(nèi)存可能包括計算機可讀介質(zhì)中的非永久性存儲器,隨機存取存儲器(ram)和/或非易失性內(nèi)存等形式,如只讀存儲器(rom)或閃存(flashram)。內(nèi)存是計算機可讀介質(zhì)的示例。
計算機可讀介質(zhì)包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術(shù)來實現(xiàn)信息存儲。信息可以是計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計算機的存儲介質(zhì)的例子包括,但不限于相變內(nèi)存(pram)、靜態(tài)隨機存取存儲器(sram)、動態(tài)隨機存取存儲器(dram)、其他類型的隨機存取存儲器(ram)、只讀存儲器(rom)、電可擦除可編程只讀存儲器(eeprom)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲器(cd-rom)、數(shù)字多功能光盤(dvd)或其他光學(xué)存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設(shè)備或任何其他非傳輸介質(zhì),可用于存儲可以被計算設(shè)備訪問的信息。按照本文中的界定,計算機可讀介質(zhì)不包括暫存電腦可讀媒體(transitorymedia),如調(diào)制的數(shù)據(jù)信號和載波。
還需要說明的是,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、商品或者設(shè)備中還存在另外的相同要素。
本領(lǐng)域技術(shù)人員應(yīng)明白,本申請的實施例可提供為方法、系統(tǒng)或計算機程序產(chǎn)品。因此,本申請可采用完全硬件實施例、完全軟件實施例或結(jié)合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、cd-rom、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。
以上所述僅為本申請的實施例而已,并不用于限制本申請。對于本領(lǐng)域技術(shù)人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原理之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請的權(quán)利要求范圍之內(nèi)。