本發(fā)明屬于投屏控制技術(shù)領(lǐng)域,具體涉及一種移動終端實時控制機頂盒的方法、設(shè)備及系統(tǒng)。
背景技術(shù):
隨著數(shù)字電視技術(shù)和互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,智能機頂盒成為了家庭和行業(yè)應(yīng)用中越來越重要的設(shè)備之一,它的用途已經(jīng)不僅僅局限于通過接收有線電纜、衛(wèi)星天線、寬帶網(wǎng)絡(luò)以及地面廣播的模擬信號或數(shù)字信號將多媒體內(nèi)容呈現(xiàn)在屏幕上,還可以通過安卓平臺進(jìn)行各種應(yīng)用的擴展,為用戶提供更多類型的服務(wù)功能,增強用戶體驗。
雖然智能機頂盒上可運行的應(yīng)用或游戲越來越多,但是目前機頂盒還是通過遙控器、游戲手柄等傳統(tǒng)設(shè)備進(jìn)行操控,這種方式存在以下缺點:一、通常需要先對按鍵進(jìn)行功能映射,設(shè)置過程繁瑣;二、在操作過程中,用戶需要同時兼顧操作按鍵和屏幕內(nèi)容,容易出錯;三,隨著安卓應(yīng)用特別是游戲應(yīng)用的復(fù)雜化,無法應(yīng)用手勢識別、重力感應(yīng)、陀螺儀、加速度計等傳感器數(shù)據(jù),大大降低了用戶體驗,隨著手機、平板等移動終端設(shè)備的不斷普及,利用各類移動終端設(shè)備對智能機頂盒進(jìn)行操控,逐漸成為一種趨勢。
申請?zhí)枮?01110295717.X的中國專利,公開了一種機頂盒控制方法,該方法通過建立機頂盒在某一工作狀態(tài)下的操作動作與移動終端的交互界面內(nèi)輸入動作之間的映射關(guān)系,實現(xiàn)通過移動終端操控機頂盒的目的。該方法缺點有:一,通過配置方式實現(xiàn)用戶控制指令與機頂盒操作動作的映射關(guān)系,不但復(fù)雜繁瑣,而且無法窮舉所有用戶可能的輸入的控制指令;二,移動終端的屏幕內(nèi)容與機頂盒屏幕內(nèi)容不一致,用戶無法直觀地在移動終端上進(jìn)行操控;三,這種方式在同一時間內(nèi)只允許一臺移動終端進(jìn)行操作,無法實現(xiàn)機頂盒同時與多個移動終端之間的同時交互,使用方式不夠靈活。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的之一在于克服以上缺點,提供一種能直觀方便地在移動終端界面上對機頂盒內(nèi)容進(jìn)行展現(xiàn),并且能充分利用移動終端上的觸摸屏、傳感器等設(shè)備進(jìn)行操控,并實現(xiàn)多個移動終端互動的方法。
為了解決上述技術(shù)問題,本發(fā)明提供了一種移動終端實時控制機頂盒的方法,包括以下步驟:
機頂盒與移動終端建立通信連接;
機頂盒向移動終端發(fā)送屏幕內(nèi)容對應(yīng)的視頻流和/或音視頻數(shù)據(jù)流;
移動終端接收所述視頻流和/或音視頻數(shù)據(jù)流進(jìn)行實時播放;
移動終端發(fā)送系統(tǒng)控制消息給機頂盒;
機頂盒接收所述系統(tǒng)控制消息并進(jìn)行處理。
進(jìn)一步地,所述移動終端為一個或多個。
通過一個或多個移動終端將操作控制消息發(fā)送給機頂盒,機頂盒對操作控制消息進(jìn)行響應(yīng),可實現(xiàn)在移動終端對機頂盒的應(yīng)用進(jìn)行準(zhǔn)確控制,同時可實現(xiàn)多個移動終端之間的互動,方便用戶使用,增強用戶體驗。另外,通過機頂盒向移動終端發(fā)送屏幕內(nèi)容對應(yīng)的視頻流和/或音視頻數(shù)據(jù)流,可實現(xiàn)在移動終端上實時展現(xiàn)機頂盒屏幕內(nèi)容,不但使得播放形式多樣化,同時也使得用戶的操控輸入更加直觀。
進(jìn)一步地,所述機頂盒通過發(fā)現(xiàn)服務(wù)機制實現(xiàn)與移動終端建立通信連接。
通過發(fā)現(xiàn)服務(wù)機制方式,機頂盒自動注冊服務(wù),移動終端可自動發(fā)現(xiàn)局域網(wǎng)內(nèi)的機頂盒投屏服務(wù)并連接,無需額外配置,更加智能方便。
進(jìn)一步地,所述系統(tǒng)控制消息包括下列中的一種或一種以上:觸摸消息、傳感器消息或虛擬按鍵消息。
由于移動終端可發(fā)送觸摸消息、傳感器消息或虛擬按鍵消息給機頂盒,從而可充分利用移動終端上的觸摸屏、重力感應(yīng)、陀螺儀、加速度計等傳感器為用戶操控機頂盒應(yīng)用提供更好的操控體驗,大大擴展機頂盒中的應(yīng)用。
進(jìn)一步地,所述移動終端發(fā)送系統(tǒng)控制消息給機頂盒,具體為:
移動終端采集系統(tǒng)控制消息;
移動終端將所述系統(tǒng)控制消息封裝為通信消息,所述通信消息含有該移動終端的唯一標(biāo)識;
移動終端將所述通信消息發(fā)送給機頂盒。
進(jìn)一步地,所述機頂盒接收所述系統(tǒng)控制消息并進(jìn)行處理,具體為:
機頂盒的控制消息接收模塊將從各移動終端接收的通信消息解封裝為系統(tǒng)控制消息,按照時間順序送入消息緩沖隊列;
機頂盒的控制消息處理模塊從消息緩沖隊列中逐條提取系統(tǒng)控制消息轉(zhuǎn)發(fā)給應(yīng)用程序。
進(jìn)一步地,所述“機頂盒的控制消息處理模塊從消息緩沖隊列中逐條提取系統(tǒng)控制消息轉(zhuǎn)發(fā)給應(yīng)用程序”,具體為:
從消息緩沖隊列中逐條提取系統(tǒng)控制消息;
根據(jù)系統(tǒng)控制消息的類型將不同的系統(tǒng)控制消息發(fā)送給對應(yīng)的虛擬設(shè)備;虛擬設(shè)備將接收的系統(tǒng)控制消息封裝成機頂盒操作系統(tǒng)可識別的數(shù)據(jù);應(yīng)用程序主動向操作系統(tǒng)獲取需要的數(shù)據(jù);
若機頂盒當(dāng)前運行的應(yīng)用程序?qū)刂葡⑻幚砟K設(shè)置消息回調(diào),控制消息處理模塊同時將系統(tǒng)控制消息回調(diào)給應(yīng)用程序。
本發(fā)明的技術(shù)方案的系統(tǒng)控制消息可以直接發(fā)送給應(yīng)用程序進(jìn)行響應(yīng),實現(xiàn)多人同時控制機頂盒應(yīng)用的效果,同時可進(jìn)一步提高處理效率,縮短響應(yīng)時間;也可以通過機頂盒的系統(tǒng)驅(qū)動層發(fā)送給機頂盒中的應(yīng)用程序,實現(xiàn)移動終端與機頂盒中的第三方應(yīng)用程序或游戲的無縫對接。
相應(yīng)地,本發(fā)明還提供了一種通過移動終端實時控制的機頂盒,包括:
視頻發(fā)送模塊,用于向移動終端發(fā)送屏幕內(nèi)容對應(yīng)的視頻流和/或音視頻數(shù)據(jù)流;
控制消息接收模塊,用于將從各移動終端接收的通信消息解封裝為系統(tǒng)控制消息,按照時間順序送入消息緩沖隊列;
控制消息處理模塊,用于從消息緩沖隊列中逐條提取系統(tǒng)控制消息轉(zhuǎn)發(fā)給應(yīng)用程序。
相應(yīng)地,本發(fā)明還提供了一種用于實時控制機頂盒的移動終端,包括:
視頻播放模塊,用于接收所述視頻流和/或音視頻數(shù)據(jù)流進(jìn)行實時播放;
控制消息發(fā)送模塊,用于發(fā)送系統(tǒng)控制消息給機頂盒。
進(jìn)一步地,所述控制消息發(fā)送模塊,包括:
采集單元,用于采集系統(tǒng)控制消息;
封裝單元,用于將所述系統(tǒng)控制消息封裝為通信消息,所述通信消息含有該移動終端的唯一標(biāo)識;
發(fā)送單元,用于將所述通信消息發(fā)送給機頂盒。
相應(yīng)地,本發(fā)明還提供了一種用于移動終端實時控制機頂盒的系統(tǒng),包括:機頂盒和移動終端,其中,
機頂盒,通過局域網(wǎng)與移動終端相連接,用于向移動終端發(fā)送屏幕內(nèi)容對應(yīng)的視頻流和/或音視頻數(shù)據(jù)流;用于接收移動終端發(fā)送的系統(tǒng)控制消息并進(jìn)行處理;
移動終端,用于接收機頂盒發(fā)送的視頻流和/或音視頻數(shù)據(jù)流進(jìn)行實時播放;用于發(fā)送系統(tǒng)控制消息給機頂盒。
進(jìn)一步地,所述移動終端為一個或多個,所述“接收移動終端發(fā)送的系統(tǒng)控制消息并進(jìn)行處理”,具體為:
機頂盒的控制消息接收模塊將從各移動終端接收的通信消息解封裝為系統(tǒng)控制消息,按照時間順序送入消息緩沖隊列;
機頂盒的控制消息處理模塊從消息緩沖隊列中逐條提取系統(tǒng)控制消息轉(zhuǎn)發(fā)給應(yīng)用程序。
進(jìn)一步地,所述“機頂盒的控制消息處理模塊從消息緩沖隊列中逐條提取系統(tǒng)控制消息轉(zhuǎn)發(fā)給應(yīng)用程序”,具體為:
從消息緩沖隊列中逐條提取系統(tǒng)控制消息;
根據(jù)系統(tǒng)控制消息的類型將不同的系統(tǒng)控制消息發(fā)送給對應(yīng)的虛擬設(shè)備;虛擬設(shè)備將接收的系統(tǒng)控制消息封裝成機頂盒操作系統(tǒng)可識別的數(shù)據(jù);應(yīng)用程序主動向操作系統(tǒng)獲取需要的數(shù)據(jù);
若機頂盒當(dāng)前運行的應(yīng)用程序?qū)刂葡⑻幚砟K設(shè)置消息回調(diào),控制消息處理模塊同時將系統(tǒng)控制消息回調(diào)給應(yīng)用程序。
綜上所述,本發(fā)明技術(shù)方案的有益效果有:
1.通過一個或多個移動終端將操作控制消息發(fā)送給機頂盒,機頂盒對操作控制消息進(jìn)行響應(yīng),可實現(xiàn)在移動終端對機頂盒的應(yīng)用進(jìn)行準(zhǔn)確控制,同時可實現(xiàn)多個移動終端之間的互動,方便用戶使用,增強用戶體驗。另外,通過機頂盒向移動終端發(fā)送屏幕內(nèi)容對應(yīng)的視頻流和/或音視頻數(shù)據(jù)流,可實現(xiàn)在移動終端上實時展現(xiàn)機頂盒屏幕內(nèi)容,不但使得播放形式多樣化,同時也使得用戶的操控輸入更加直觀。
2.通過發(fā)現(xiàn)服務(wù)機制方式,機頂盒自動注冊服務(wù),移動終端可自動發(fā)現(xiàn)局域網(wǎng)內(nèi)的機頂盒投屏服務(wù)并連接,無需額外配置,更加智能方便。
3.由于移動終端可發(fā)送觸摸消息、傳感器消息或虛擬按鍵消息給機頂盒,從而可充分利用移動終端上的觸摸屏、重力感應(yīng)、陀螺儀、加速度計等傳感器為用戶操控機頂盒應(yīng)用提供更好的操控體驗,大大擴展機頂盒中的應(yīng)用。
4.本發(fā)明的技術(shù)方案的系統(tǒng)控制消息可以直接發(fā)送給應(yīng)用程序進(jìn)行響應(yīng),實現(xiàn)多人同時控制機頂盒應(yīng)用的效果,同時可進(jìn)一步提高處理效率,縮短響應(yīng)時間;也可以通過機頂盒的系統(tǒng)驅(qū)動層發(fā)送給機頂盒中的應(yīng)用程序,實現(xiàn)移動終端與機頂盒中的第三方應(yīng)用程序或游戲的無縫對接。
附圖說明
圖1是本發(fā)明的移動終端實時控制機頂盒的方法步驟流程圖。
圖2是本發(fā)明的移動終端發(fā)送系統(tǒng)控制消息給機頂盒步驟流程圖。
圖3是本發(fā)明的機頂盒接收系統(tǒng)控制消息并進(jìn)行處理步驟流程圖。
圖4是本發(fā)明的機頂盒的控制消息處理模塊從消息緩沖隊列中逐條提取系統(tǒng)控制消息轉(zhuǎn)發(fā)給應(yīng)用程序步驟流程圖。
圖5是本發(fā)明的一種通過移動終端實時控制的機頂盒結(jié)構(gòu)圖。
圖6是本發(fā)明的一種用于實時控制機頂盒的移動終端結(jié)構(gòu)圖。
圖7是本發(fā)明的一種用于移動終端實時控制機頂盒的系統(tǒng)結(jié)構(gòu)圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
如圖1,是本發(fā)明的移動終端實時控制機頂盒的方法步驟流程圖,包括以下步驟:
步驟1、機頂盒與移動終端建立通信連接;
本發(fā)明的移動終端實時控制機頂盒的方法中,所述機頂盒是指類似智能手機一樣,具有全開放式平臺,搭載了安卓操作系統(tǒng),可以由用戶自行安裝和卸載軟件、游戲等第三方服務(wù)商提供的程序,通過此類程序來不斷對點歌系統(tǒng)或電視的功能進(jìn)行擴充,并可以通過網(wǎng)線、無線網(wǎng)絡(luò)來實現(xiàn)上網(wǎng)沖浪的的新一代機頂盒,所述移動終端指的是智能手機,平板電腦、智能手表等具有顯示屏幕的終端設(shè)備,移動終端為一個或多個。所述機頂盒與移動終端處于同一局域網(wǎng)絡(luò)中,可以采用有線或無線連接方式。
本發(fā)明技術(shù)方案的技術(shù)架構(gòu)上采用的是服務(wù)端與移動終端模式,機頂盒為服務(wù)端,為一個或者多個移動終端提供服務(wù),機頂盒提供的服務(wù)包括反向投屏服務(wù),指的是將機頂盒輸出的音視頻內(nèi)容,發(fā)送給連接到機頂盒的移動終端,在移動終端的屏幕上同步顯示,從而方便用戶的使用或操控輸入;控制消息服務(wù),用于接收所有移動終端發(fā)送的系統(tǒng)控制消息并進(jìn)行處理,轉(zhuǎn)發(fā)給安卓系統(tǒng)的上層應(yīng)用進(jìn)行響應(yīng)。
為了方便地讓移動終端知道局域網(wǎng)中哪些機頂盒提供了上述服務(wù),優(yōu)選地,本發(fā)明的技術(shù)方案中的機頂盒和移動終端還分別部署自動發(fā)現(xiàn)服務(wù),用于實現(xiàn)在無需手動網(wǎng)絡(luò)配置的情況下,局域網(wǎng)內(nèi)的機頂盒和移動終端之間的相互發(fā)現(xiàn)及通信。例如,在一具體實施例中,利用mDNS自動發(fā)現(xiàn)協(xié)議實現(xiàn)移動終端發(fā)現(xiàn)局域網(wǎng)中提供反向投屏服務(wù)的機頂盒的網(wǎng)絡(luò)地址的具體流程為:某一機頂盒連入局域網(wǎng),在本機上啟動了反向投屏服務(wù),同時也啟動mDNS服務(wù),并向mDNS服務(wù)注冊反向投屏服務(wù)信息如下:反向投屏服務(wù)IP地址是192.168.1.101,服務(wù)端口是9009。當(dāng)另一移動終端連入局域網(wǎng),需要尋找本網(wǎng)絡(luò)中的可用的反向投屏服務(wù)時,先啟動本機的mDNS服務(wù),并向mDNS服務(wù)發(fā)送查找局域網(wǎng)內(nèi)反向投屏服務(wù)的請求,此時,移動終端的mDNS服務(wù)就會向局域網(wǎng)內(nèi)其他設(shè)備上的mDNS服務(wù)發(fā)送廣播消息進(jìn)行查詢,當(dāng)機頂盒的mDNS服務(wù)接收到廣播消息后就會將已經(jīng)注冊的反向投屏服務(wù)IP地址和服務(wù)端口號發(fā)送給移動終端的mDNS服務(wù)。通過這種方式,移動終端就可以獲取到局域網(wǎng)內(nèi)所有反向投屏服務(wù)的IP地址和端口號,選擇需要的反向投屏服務(wù)進(jìn)行連接點播。
步驟2、機頂盒向移動終端發(fā)送屏幕內(nèi)容對應(yīng)的視頻流和/或音視頻數(shù)據(jù)流;
為實現(xiàn)將機頂盒播放的音視頻內(nèi)容實時顯示在移動終端屏幕上,首先,機頂盒上的反向投屏服務(wù)需要進(jìn)行屏幕視頻和音頻數(shù)據(jù)的采集,生成音視頻數(shù)據(jù)流。通過采用文件流的方式,移動終端可以在接收多媒體流數(shù)據(jù)的同時進(jìn)行已接收部分的播放,而不必等待所有數(shù)據(jù)傳輸完畢,從而減少用戶的等待時間。
其次,為減少在網(wǎng)絡(luò)傳輸過程中的網(wǎng)絡(luò)帶寬占用,反向投屏服務(wù)還需要對采集的屏幕圖像數(shù)據(jù)和音頻數(shù)據(jù)進(jìn)行編碼處理,音視頻的編碼可以通過機頂盒集成的硬件編碼模塊進(jìn)行處理,例如,常見的視頻編碼格式有H264、Xvid等,音頻編碼格式有MP3、AAC等,通過這些高質(zhì)量的編碼算法,可以在較高分辨率,例如,720P分辨率下實現(xiàn)較好的畫質(zhì)效果并盡量地減少網(wǎng)絡(luò)傳輸數(shù)據(jù)量,降低傳輸延時,提升視頻播放的流暢度。
在對采集的屏幕圖像數(shù)據(jù)和音頻數(shù)據(jù)進(jìn)行編碼處理之后,反向投屏服務(wù)就可以通過流媒體傳輸協(xié)議將音視頻數(shù)據(jù)流發(fā)送給移動終端,常見的流媒體傳輸協(xié)議有RTMP協(xié)議、RTSP協(xié)議、MMS協(xié)議、HLS協(xié)議等。在一具體的實施例中,所述反向投屏服務(wù)采用RTSP協(xié)議將編碼后的音視頻數(shù)據(jù)流發(fā)送給移動終端,協(xié)議交互流程為:反向投屏服務(wù)啟動RTSP服務(wù)端;移動終端向RTSP服務(wù)器發(fā)送建立會話請求;RTSP服務(wù)器為移動終端建立會話并返回應(yīng)答消息;移動終端向RTSP服務(wù)器發(fā)送播放請求;RTSP服務(wù)器向移動終端發(fā)送應(yīng)答消息,同時開始發(fā)送流媒體數(shù)據(jù);播放結(jié)束時,移動終端向RTSP服務(wù)器發(fā)送關(guān)閉會話請求;RTSP服務(wù)器結(jié)束該移動終端的會話。
步驟3、移動終端接收所述視頻流和/或音視頻數(shù)據(jù)流進(jìn)行實時播放;
移動終端通過流媒體傳輸協(xié)議接收到音視頻流數(shù)據(jù)后,可用支持相應(yīng)傳輸協(xié)議的播放軟件進(jìn)行解碼實時播放,大部分的常見播放軟件均支持各種協(xié)議流媒體的點播功能。
步驟4、移動終端發(fā)送系統(tǒng)控制消息給機頂盒;
為實現(xiàn)在移動終端上對機頂盒的應(yīng)用或游戲進(jìn)行操控,首先需要將移動終端上的系統(tǒng)控制消息發(fā)送給機頂盒,這里的系統(tǒng)控制消息,可以是觸摸消息,也可以是傳感器消息,例如,重力感應(yīng)、陀螺儀、加速度計等,還可以是移動終端上的虛擬鍵盤消息等。如圖2,是本發(fā)明的移動終端發(fā)送系統(tǒng)控制消息給機頂盒步驟流程圖,包括以下步驟:
步驟401、移動終端采集系統(tǒng)控制消息;
在移動終端的操作系統(tǒng)中,各種用戶操控動作的處理都是依靠事件消息驅(qū)動機制實現(xiàn)的,其中,事件消息是指移動終端操作系統(tǒng)產(chǎn)生的報告事件發(fā)生的通知,移動終端采集事件消息發(fā)送給機頂盒,再由機頂盒的操作系統(tǒng)將事件消息推送給應(yīng)用程序,由應(yīng)用程序根據(jù)機頂盒系統(tǒng)提供的事件消息進(jìn)行相應(yīng)的處理,當(dāng)然,機頂盒的操作系統(tǒng)本身也可以根據(jù)事件消息進(jìn)行相應(yīng)處理。例如,用戶點擊了觸摸屏,移動終端的操作系統(tǒng)就會生成一個觸摸事件消息,該消息包含了觸摸事件的各個屬性,比如坐標(biāo)位置,觸摸動作類型等等,移動終端采集這個觸摸事件消息發(fā)送給機頂盒,機頂盒操作系統(tǒng)將這個觸摸事件消息發(fā)送給用戶當(dāng)前使用的瀏覽器應(yīng)用,該應(yīng)用就根據(jù)用戶點擊的位置進(jìn)行頁面的跳轉(zhuǎn);又如,用戶翻轉(zhuǎn)移動終端,觸發(fā)了重力傳感器的重力變化事件消息,移動終端采集這個重力變化事件消息發(fā)送給機頂盒,機頂盒操作系統(tǒng)根據(jù)該事件消息,對終端屏幕顯示內(nèi)容進(jìn)行翻轉(zhuǎn)操作。
本發(fā)明的技術(shù)方案中,所述移動終端主要用于采集與用戶操控相關(guān)的系統(tǒng)控制消息,最常見的是觸摸消息,用戶在移動終端屏幕上點擊,移動,多點操作,手勢操作等等;另外,還可能需要采集傳感器設(shè)備消息,包括加速度傳感器,磁力傳感器,重力傳感器,陀螺儀、方向傳感器,壓力傳感器等等;以及虛擬按鍵消息等。
具體的系統(tǒng)控制消息采集方式為:通過在移動終端設(shè)置系統(tǒng)級別的消息監(jiān)聽器,對系統(tǒng)所有的事件消息進(jìn)分析,過濾出本發(fā)明移動終端所需要的采集的系統(tǒng)控制消息,其他事件消息不進(jìn)行采集。
步驟402、移動終端將所述系統(tǒng)控制消息封裝為通信消息,所述通信消息含有該移動終端的唯一標(biāo)識;
移動終端采集到所需的系統(tǒng)控制消息后,需要將這些系統(tǒng)控制消息封裝為通信消息發(fā)送給機頂盒。通信消息的格式,根據(jù)移動終端和機頂盒之間相互通信的協(xié)議決定,通常包括消息頭部和數(shù)據(jù)體兩部分,其中消息頭部為網(wǎng)絡(luò)協(xié)議規(guī)定的各種屬性信息,根據(jù)不同的網(wǎng)絡(luò)協(xié)議而不同,數(shù)據(jù)體是本發(fā)明技術(shù)方案機頂盒與移動終端之間使用的內(nèi)部數(shù)據(jù),具體格式可以根據(jù)應(yīng)用需要設(shè)置,通常,該數(shù)據(jù)體會包含有移動終端的唯一標(biāo)識,以便機頂盒進(jìn)行消息的區(qū)分。例如,在一具體的實施例中,數(shù)據(jù)體部分可設(shè)置為包含三部分內(nèi)容:第一部分為移動終端的唯一標(biāo)識,第二部分為所采集系統(tǒng)控制消息的類型,第三部分為所采集系統(tǒng)控制消息的具體內(nèi)容。
步驟403、移動終端將所述通信消息發(fā)送給機頂盒。
移動終端將封裝好的通信消息通過相應(yīng)的網(wǎng)絡(luò)協(xié)議發(fā)送給機頂盒,優(yōu)選地,本發(fā)明的技術(shù)方案采用WebSocket通信協(xié)議進(jìn)行通信消息的發(fā)送。WebSocket是HTML5一種新的協(xié)議,它采用了TCP長連接的通訊模式,一旦移動終端與服務(wù)器WebSocket連接建立后,后續(xù)數(shù)據(jù)都以幀序列的形式傳輸,在移動終端斷開WebSocket連接或Server端斷掉連接前,不需要移動終端和服務(wù)端重新發(fā)起連接請求,同時移動終端與服務(wù)器都可以主動向?qū)Ψ桨l(fā)送消息。通過采用WebSocket通信協(xié)議,在高并發(fā)及移動終端與服務(wù)器交互負(fù)載流量大的情況下,可以極大節(jié)省了網(wǎng)絡(luò)帶寬資源的消耗,有明顯的性能優(yōu)勢,可以實現(xiàn)操控指令發(fā)送低延遲,響應(yīng)速度快,進(jìn)一步提升用戶體驗。
步驟5、機頂盒接收所述系統(tǒng)控制消息并進(jìn)行處理。如圖3,是本發(fā)明的機頂盒接收系統(tǒng)控制消息并進(jìn)行處理步驟流程圖,包括以下步驟:
步驟501、機頂盒的控制消息接收模塊將從各移動終端接收的通信消息解封裝為系統(tǒng)控制消息,按照時間順序送入消息緩沖隊列;
機頂盒將所有移動終端發(fā)送的通信消息逐一進(jìn)行解封裝處理,根據(jù)傳輸網(wǎng)絡(luò)協(xié)議去除通信消息頭部,得到所需的數(shù)據(jù)體,并按照接收的時間順序送入統(tǒng)一的消息緩沖隊列中。
步驟502、機頂盒的控制消息處理模塊從消息緩沖隊列中逐條提取系統(tǒng)控制消息轉(zhuǎn)發(fā)給應(yīng)用程序。如圖4,是本發(fā)明的機頂盒的控制消息處理模塊從消息緩沖隊列中逐條提取系統(tǒng)控制消息轉(zhuǎn)發(fā)給應(yīng)用程序步驟流程圖,包括以下步驟:
步驟601、機頂盒的控制消息處理模塊按照時間順序從消息緩沖隊列中逐條提取系統(tǒng)控制消息,進(jìn)行后續(xù)的處理;
步驟602、根據(jù)系統(tǒng)控制消息的類型將不同的系統(tǒng)控制消息發(fā)送給對應(yīng)的虛擬設(shè)備;虛擬設(shè)備將接收的系統(tǒng)控制消息封裝成機頂盒操作系統(tǒng)可識別的數(shù)據(jù);應(yīng)用程序主動向操作系統(tǒng)獲取需要的數(shù)據(jù);
由于消息緩沖隊列中的系統(tǒng)控制消息來自于不同的移動終端,而且控制消息類型也可能不同,例如,系統(tǒng)控制消息可以是智能手機發(fā)送的觸摸消息,也可以是平板電腦發(fā)送的重力傳感器消息。若機頂盒上沒有集成對應(yīng)類型的控制設(shè)備,應(yīng)用程序是無法對該類型的系統(tǒng)控制消息進(jìn)行響應(yīng)的,在這種情況下,本發(fā)明的技術(shù)方案可通過創(chuàng)建虛擬設(shè)備的方式對該設(shè)備進(jìn)行模擬,應(yīng)用程序就可以對系統(tǒng)控制消息進(jìn)行響應(yīng)。例如,當(dāng)從移動終端接收重力傳感器的系統(tǒng)控制消息時,在機頂盒系統(tǒng)中模擬一個虛擬重力傳感器設(shè)備以及相應(yīng)設(shè)備驅(qū)動。將重力傳感器的系統(tǒng)控制消息發(fā)送給虛擬重力傳感器設(shè)備,然后通過虛擬重力傳感器設(shè)備中的虛擬驅(qū)動將接收的重力傳感器系統(tǒng)控制消息封裝成機頂盒操作系統(tǒng)預(yù)先規(guī)定的格式,應(yīng)用程序從操作系統(tǒng)獲取封裝后的重力傳感器的系統(tǒng)控制消息后,即可響應(yīng)該重力傳感器的系統(tǒng)控制消息。
機頂盒的控制消息處理模塊根據(jù)系統(tǒng)控制消息的類型,將提取的系統(tǒng)控制消息發(fā)送給對應(yīng)的虛擬設(shè)備,例如,某一系統(tǒng)控制消息類型為觸摸控制消息,則將該控制消息發(fā)送給機頂盒的虛擬觸摸屏設(shè)備;又如,某一系統(tǒng)控制消息類型為重力傳感控制消息,則將該控制消息發(fā)送給機頂盒的虛擬重力傳感設(shè)備。虛擬設(shè)備將接收的系統(tǒng)控制消息封裝成機頂盒操作系統(tǒng)可識別的數(shù)據(jù),在通過操作系統(tǒng)的消息機制發(fā)送給應(yīng)用程序,由應(yīng)用程序?qū)ο到y(tǒng)控制消息進(jìn)行響應(yīng)。通過操作系統(tǒng)的消息機制,應(yīng)用程序只對需要的虛擬設(shè)備控制消息進(jìn)行響應(yīng),其他虛擬設(shè)備的消息不處理。
上述處理方式通過機頂盒系統(tǒng)的虛擬設(shè)備以及消息驅(qū)動機制實現(xiàn)了系統(tǒng)控制消息轉(zhuǎn)發(fā)給應(yīng)用程序,應(yīng)用程序無需做任何改動,這樣可以實現(xiàn)與第三方應(yīng)用或游戲的無縫對接。
步驟603、若機頂盒當(dāng)前運行的應(yīng)用程序?qū)刂葡⑻幚砟K設(shè)置消息回調(diào),控制消息處理模塊同時將系統(tǒng)控制消息回調(diào)給應(yīng)用程序。
在一優(yōu)選的實施例中,機頂盒當(dāng)前運行的應(yīng)用程序還可以通過對控制消息處理模塊設(shè)置消息回調(diào),由控制消息處理模塊提取出系統(tǒng)控制消息直接發(fā)送給應(yīng)用程序,再由應(yīng)用程序?qū)ο到y(tǒng)控制消息進(jìn)行響應(yīng),而不是通過虛擬設(shè)備轉(zhuǎn)發(fā)。這種方式可以實現(xiàn)應(yīng)用程序?qū)Χ鄠€不同的移動終端發(fā)送的系統(tǒng)控制消息進(jìn)行響應(yīng),達(dá)到多個移動終端同時控制機頂盒應(yīng)用程序的效果;另外,由控制消息處理模塊直接將系統(tǒng)控制消息發(fā)送給應(yīng)用程序,可降低消息延遲,提高響應(yīng)速度,例如在賽車游戲中,需要快速地根據(jù)用戶的控制信息進(jìn)行畫面的重繪,若用戶控制信息延遲高,可能就會出現(xiàn)畫面卡頓的情況,影響用戶體驗。
例如,在一具體的實施例中,機頂盒上安裝了可多人互動的飛行棋應(yīng)用,該應(yīng)用對控制消息處理模塊設(shè)置了消息回調(diào),通過本發(fā)明的技術(shù)方案實現(xiàn)利用智能手機、平板電腦操控機頂盒上飛行棋游戲應(yīng)用進(jìn)行多人互動的步驟為:
步驟1、機頂盒與智能手機、平板電腦處于同一局域網(wǎng)內(nèi),智能手機、平板電腦通過mDNS服務(wù)發(fā)現(xiàn)機制分別與機頂盒建立通信連接。
步驟2、機頂盒上的反向投屏服務(wù)對屏幕顯示的飛行棋游戲應(yīng)用視頻和音頻數(shù)據(jù)進(jìn)行采集,生成音視頻數(shù)據(jù)流,再進(jìn)行壓縮后,通過RTSP協(xié)議分別發(fā)送給智能手機和平板電腦。
步驟3、智能手機、平板電腦分別通過RTSP協(xié)議接收機頂盒反向投屏服務(wù)發(fā)送的飛行棋游戲應(yīng)用音視頻數(shù)據(jù)流,在屏幕上進(jìn)行實時播放。
步驟4、智能手機和平板電腦分別在各自設(shè)備上設(shè)置系統(tǒng)級別的消息監(jiān)聽器,對系統(tǒng)所有的控制消息進(jìn)分析,過濾出用戶輸入的觸摸屏控制消息,將采集的觸摸屏控制消息封裝為WebSocket通信消息包,其中,通信消息含有智能手機或平板電腦的唯一身份標(biāo)識,用于對應(yīng)飛行棋應(yīng)用中的用戶角色,再通過WebSocket協(xié)議發(fā)送給機頂盒的控制消息接收模塊。
步驟5、機頂盒的控制消息接收模塊接收從智能手機和平板電腦發(fā)送的WebSocket通信協(xié)議包,解封裝為觸摸屏控制消息,并按照時間順序送入消息緩沖隊列;機頂盒的控制消息處理模塊從消息緩沖隊列中逐條提取觸摸屏控制消息,由于飛行棋應(yīng)用程序?qū)刂葡⑻幚砟K設(shè)置了消息回調(diào),控制消息處理模塊直接將觸摸屏控制消息發(fā)送給飛行棋應(yīng)用程序。
步驟6、飛行棋應(yīng)用程序按照觸摸屏控制消息的先后順序,根據(jù)控制消息中的唯一身份標(biāo)識,對飛行棋應(yīng)用中的對應(yīng)角色進(jìn)行處理,重新繪制屏幕界面,將對應(yīng)角色的棋子繪制在指定位置。與此同時,反向投屏服務(wù)將最新屏幕界面內(nèi)容采集并發(fā)送給智能手機和平板電腦,使得每個用戶均能看到雙方的操作結(jié)果,再進(jìn)行后續(xù)指令輸入。
通過上述的方式,本發(fā)明的技術(shù)方案實現(xiàn)了將機頂盒的內(nèi)容分別展現(xiàn)在智能手機和平板電腦,并根據(jù)不同用戶在各自終端上的屏幕觸摸指令進(jìn)行飛行棋應(yīng)用的多人互動。如圖5,是本發(fā)明的一種通過移動終端實時控制的機頂盒結(jié)構(gòu)圖,包括:
視頻發(fā)送模塊,本模塊用于向移動終端發(fā)送屏幕內(nèi)容對應(yīng)的視頻流和/或音視頻數(shù)據(jù)流;通常以機頂盒上的反向投屏服務(wù)形式部署,進(jìn)行屏幕視頻和音頻數(shù)據(jù)的采集,生成音視頻數(shù)據(jù)流,再進(jìn)行編碼處理,減少網(wǎng)絡(luò)傳輸數(shù)據(jù)量,降低傳輸延時,最后通過流媒體傳輸協(xié)議將音視頻數(shù)據(jù)流發(fā)送給移動終端。
控制消息接收模塊,本模塊用于將從一個或多個移動終端接收的通信消息解封裝為系統(tǒng)控制消息,按照時間順序送入消息緩沖隊列;
控制消息處理模塊,本模塊用于從消息緩沖隊列中逐條提取系統(tǒng)控制消息轉(zhuǎn)發(fā)給應(yīng)用程序,具體步驟為:按照時間順序從消息緩沖隊列中逐條提取系統(tǒng)控制消息;根據(jù)系統(tǒng)控制消息的類型將不同的系統(tǒng)控制消息發(fā)送給對應(yīng)的虛擬設(shè)備;虛擬設(shè)備將接收的系統(tǒng)控制消息封裝成機頂盒操作系統(tǒng)可識別的數(shù)據(jù);應(yīng)用程序主動向操作系統(tǒng)獲取需要的數(shù)據(jù);若機頂盒當(dāng)前運行的應(yīng)用程序?qū)刂葡⑻幚砟K設(shè)置消息回調(diào),控制消息處理模塊同時將系統(tǒng)控制消息回調(diào)給應(yīng)用程序。
如圖6,是本發(fā)明的一種用于實時控制機頂盒的移動終端結(jié)構(gòu)圖,包括:
視頻播放模塊,用于根據(jù)流媒體傳輸協(xié)議接收機頂盒發(fā)送的視頻流和/或音視頻數(shù)據(jù)流進(jìn)行實時播放;
控制消息發(fā)送模塊,用于獲取用戶的控制信息并發(fā)送給機頂盒,具體地,本模塊包含以下三個單元:采集單元,用于采集系統(tǒng)控制消息,在移動終端系統(tǒng)級設(shè)置消息監(jiān)聽器,對系統(tǒng)所有的事件消息進(jìn)分析,過濾出本發(fā)明移動終端所需要的采集的系統(tǒng)控制消息;封裝單元,用于根據(jù)移動終端和機頂盒之間相互通信的協(xié)議,將系統(tǒng)控制消息封裝為網(wǎng)絡(luò)通信消息,通信消息含有該移動終端的唯一標(biāo)識;發(fā)送單元,用于根據(jù)移動終端和機頂盒之間相互通信的協(xié)議將通信消息發(fā)送給機頂盒。
如圖7,是本發(fā)明的一種用于移動終端實時控制機頂盒的系統(tǒng)結(jié)構(gòu)圖,包括:機頂盒和移動終端,其中,
機頂盒,通過局域網(wǎng)與移動終端相連接,用于向移動終端發(fā)送屏幕內(nèi)容對應(yīng)的視頻流和/或音視頻數(shù)據(jù)流,具體實現(xiàn)方式為:機頂盒上的反向投屏服務(wù)進(jìn)行屏幕視頻和音頻數(shù)據(jù)的采集,生成音視頻數(shù)據(jù)流,再進(jìn)行編碼處理,減少網(wǎng)絡(luò)傳輸數(shù)據(jù)量,降低傳輸延時,最后通過流媒體傳輸協(xié)議將音視頻數(shù)據(jù)流發(fā)送給移動終端;另外,機頂盒還用于接收移動終端發(fā)送的系統(tǒng)控制消息并進(jìn)行處理,具體為:機頂盒的控制消息接收模塊將從各移動終端接收的通信消息解封裝為系統(tǒng)控制消息,按照時間順序送入消息緩沖隊列;機頂盒的控制消息處理模塊從消息緩沖隊列中逐條提取系統(tǒng)控制消息轉(zhuǎn)發(fā)給應(yīng)用程序。其中,機頂盒的控制消息處理模塊從消息緩沖隊列中逐條提取系統(tǒng)控制消息轉(zhuǎn)發(fā)給應(yīng)用程序,包含以下步驟:按照時間順序從消息緩沖隊列中逐條提取系統(tǒng)控制消息;根據(jù)系統(tǒng)控制消息的類型將不同的系統(tǒng)控制消息發(fā)送給對應(yīng)的虛擬設(shè)備;虛擬設(shè)備將接收的系統(tǒng)控制消息封裝成機頂盒操作系統(tǒng)可識別的數(shù)據(jù);應(yīng)用程序主動向操作系統(tǒng)獲取需要的數(shù)據(jù);若機頂盒當(dāng)前運行的應(yīng)用程序?qū)刂葡⑻幚砟K設(shè)置消息回調(diào),控制消息處理模塊同時將系統(tǒng)控制消息回調(diào)給應(yīng)用程序。
移動終端,指的是智能手機、平板電腦、PDA等具有顯示屏幕的終端設(shè)備,用于根據(jù)流媒體傳輸協(xié)議接收機頂盒發(fā)送的音視頻數(shù)據(jù)流并進(jìn)行實時播放;用于發(fā)送系統(tǒng)控制消息給機頂盒,具體步驟為:在移動終端系統(tǒng)級設(shè)置消息監(jiān)聽器,對系統(tǒng)所有的事件消息進(jìn)分析,過濾出本發(fā)明移動終端所需要的采集的系統(tǒng)控制消息;根據(jù)移動終端和機頂盒之間相互通信的協(xié)議,將系統(tǒng)控制消息封裝為通信消息;根據(jù)移動終端和機頂盒之間相互通信的協(xié)議將通信消息發(fā)送給機頂盒。
上述具體實施方式只是對本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)解釋,本發(fā)明并不只僅僅局限于上述實施例,凡是依據(jù)本發(fā)明原理的任何改進(jìn)或替換,均應(yīng)在本發(fā)明的保護范圍之內(nèi)。