本發(fā)明涉及虛擬現(xiàn)實技術領域,特別是涉及一種用于vr顯示的終端分屏顯示的方法及終端。
背景技術:
虛擬現(xiàn)實(virtualreality,vr)是一種可以體驗虛擬世界的仿真系統(tǒng),該仿真系統(tǒng)中融合了三維動態(tài)實景和實體行為,使用戶可以觀看3d影片或玩3d游戲,提升用戶體驗。但是高端vr產(chǎn)品價格昂貴,只適合高收入人群,針對這種現(xiàn)狀,一些公司推出了可以借助用戶現(xiàn)有的終端體驗vr技術的vr眼鏡。
圖1為現(xiàn)有技術中一種vr眼鏡的結構示意圖,如圖1所示,該vr眼鏡110包括終端固定艙111、左眼鏡片112和右眼鏡片113。使用時,用戶首先將終端固定艙111的艙蓋114打開,將終端120固定在終端固定艙111內,通過左眼鏡片112和右眼鏡片113同時觀察終端120上顯示的左眼畫面121和右眼畫面122,產(chǎn)生3d效果。
也就是說,為了產(chǎn)生3d效果,終端120上必須同時顯示左眼畫面121和右眼畫面122。但是用戶現(xiàn)有終端上的應用大多都是針對單一畫面設計的,無法滿足vr眼鏡中3d顯示的需求。
技術實現(xiàn)要素:
本發(fā)明實施例中提供了一種用于vr顯示的終端分屏顯示的方法及終端,以解決現(xiàn)有技術中終端上的應用大多都是針對單一畫面設計的,無法滿足vr眼鏡中3d顯示的需求。
第一方面,本發(fā)明實施例提供了一種用于vr顯示的終端分屏顯示的方法,所述方法包括:在vr顯示時,對屏幕當前顯示的窗口進行縮放,獲得非分屏應用窗口,所述非分屏應用窗口的尺寸小于或等于所述屏幕尺寸的二分之一;復制所述屏幕當前顯示的窗口,獲得分屏應用窗口;調整所述非分屏應用窗口和所述分屏應用窗口的位置,使得所述非分屏應用窗口和所述分屏應用窗口中與所述非分屏應用窗口對應的區(qū)域分別位于所述屏幕的左右兩側。
第二方面,本發(fā)明實施例提供了另一種用于vr顯示的終端分屏顯示的方法,所述方法包括:在vr顯示時,復制屏幕當前顯示的窗口,獲得與所述屏幕當前顯示的窗口相同的復制窗口;分別對所述屏幕當前顯示的窗口和所述復制窗口進行相同的比例縮放,獲得非分屏應用窗口和分屏應用窗口,所述非分屏應用窗口和所述分屏應用窗口的尺寸小于或等于所述屏幕尺寸的二分之一;分別將所述非分屏應用窗口和所述分屏應用窗口的位置調整至屏幕的左右兩側。
第三方面,本發(fā)明實施例提供了一種終端,所述終端包括處理器;用于存儲處理器的執(zhí)行指令的存儲器;其中,所述處理器被配置為執(zhí)行上述第一方面和第二方面任一項所述的方法。
采用本發(fā)明實施例提供的技術方案,在應用程序層通過對屏幕當前顯示窗口的縮放、復制和移動,實現(xiàn)應用的分屏顯示,可以滿足vr眼鏡中3d顯示的需求。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,對于本領域普通技術人員而言,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為現(xiàn)有技術中一種vr眼鏡盒子的結構示意圖;
圖2為本發(fā)明實施例提供的一種場景示意圖;
圖3為本發(fā)明實施例提供的一種用于vr顯示的終端分屏顯示的方法流程示意圖;
圖4a和圖4b為本發(fā)明實施例提供的另一種場景示意圖;
圖5為本發(fā)明實施例提供的另一種用于vr顯示的終端分屏顯示的方法流程示意圖;
圖6為本發(fā)明實施例提供的另一種用于vr顯示的終端分屏顯示的方法流程示意圖;
圖7為本發(fā)明實施例提供的另一種場景示意圖;
圖8為本發(fā)明實施例提供的一種終端的結構示意圖。
具體實施方式
為了使本技術領域的人員更好地理解本發(fā)明中的技術方案,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應當屬于本發(fā)明保護的范圍。
圖2為本發(fā)明實施例提供的一種場景示意圖,如圖2所示,終端采用單一的視頻播放界面進行視頻的播放。換句話說,終端的屏幕上在同一時間僅顯示一個視頻播放界面,但是為了配合vr眼鏡實現(xiàn)3d顯示效果,終端的屏幕上需要同時顯示左眼畫面和右眼畫面。針對這種現(xiàn)象,本發(fā)明實施例提供了一種用于vr顯示的終端分屏顯示的方案,該方案利用終端現(xiàn)有系統(tǒng)架構的上層應用程序層,實現(xiàn)終端的分屏顯示效果,下文進行詳細說明。需要指出的是,本發(fā)明實施例所涉及的終端可以為手機、平板電腦或掌上電腦等;本發(fā)明實施例所涉及的應用可以為視頻播放應用、flash動畫播放應用或ppt播放應用等,本發(fā)明實施例對終端和應用的具體形式不做限定。
圖3為本發(fā)明實施例提供的一種用于vr顯示的終端分屏顯示的方法流程示意圖,如圖3所示,其主要包括以下步驟。
步驟s301:在vr顯示時,對屏幕當前顯示的窗口進行縮放,獲得非分屏應用窗口,所述非分屏應用窗口的尺寸小于或等于所述屏幕尺寸的二分之一。
以安卓(android)系統(tǒng)架構為例,在android系統(tǒng)中,窗口管理服務模塊(windowmanagerservice)通過窗口狀態(tài)模塊(windowstate)維護android系統(tǒng)每個應用程序的窗口,記錄窗口的大小和位置。
在本發(fā)明實施例中,windowstate通過窗口控制模塊(surfacecontroller)對屏幕當前顯示的窗口進行縮放,為了便于說明,將縮放后的窗口定義為非分屏應用窗口。理想情況下,將非分屏應用窗口的尺寸縮放為屏幕尺寸的二分之一可以使得屏幕得到最高的利用率。當然,本領域技術人員也可以根據(jù)實際需要將非分屏應用窗口的尺寸縮放為小于屏幕尺寸的二分之一的任一數(shù)值。
需要指出的是,所述屏幕當前顯示的窗口是指屏幕上的整個窗口,以圖2為例,所述屏幕當前顯示的窗口包括視頻播放界面、視頻播放界面上方的備注欄以及視頻播放下方的控制欄。另外,本發(fā)明實施例所涉及的窗口包括繪圖表面(surface)和視圖(view)。相應地,窗口縮放為原始尺寸的一半是指surface和view均縮放為原始尺寸的一半。
步驟s302:復制所述屏幕當前顯示的窗口,獲得分屏應用窗口。
在android系統(tǒng)中,虛擬屏幕模塊(virturedisplay)可以鏡像幀緩沖器(framebuffer)中的數(shù)據(jù),即鏡像屏幕當前顯示的窗口中的所有數(shù)據(jù),包括surface和view。
以圖4a所示的場景為例,virturedisplay復制整個屏幕,復制的屏幕尺寸為1920*1080,包括非分屏應用窗口401,非分屏應用窗口401上側和下側的空白區(qū)域,以及非分屏應用窗口401右側的空白區(qū)域。其中,非分屏應用窗口401右側的空白區(qū)域通常為上一幀畫面。
為了便于說明,在本發(fā)明實施例中將virturedisplay復制的窗口定義為分屏應用窗口。
步驟s303:調整所述非分屏應用窗口和所述分屏應用窗口的位置,使得所述非分屏應用窗口和所述分屏應用窗口中與所述非分屏應用窗口對應的區(qū)域分別位于所述屏幕的左右兩側。
當終端用于vr顯示時通常橫向設置,因此本發(fā)明實施例中屏幕的左右兩側優(yōu)選為屏幕橫向設置時的左右兩側。
從用戶的眼睛和屏幕的相對位置來看,用戶的左眼和右眼分別觀察屏幕的左側和右側,因此本發(fā)明實施例需要分別將非分屏應用窗口和分屏應用窗口中與所述非分屏應用窗口對應的區(qū)域調整至屏幕的左右兩側。具體地,當非分屏應用窗口的位置調整至屏幕的左側時,分屏應用窗口中與所述非分屏應用窗口對應的區(qū)域的位置調整至屏幕的右側;當非分屏應用窗口的位置調整至屏幕的右側時,分屏應用窗口中與所述非分屏應用窗口對應的區(qū)域的位置調整至屏幕的左側。在本發(fā)明實施例中以非分屏應用窗口的位置調整至屏幕的左側為例進行說明。
由于屏幕上具有自己的坐標系,因此windowstate通過surfacecontroller對非分屏應用窗口和分屏應用窗口的位置進行調整可以通過設置非分屏應用窗口的起始點坐標來實現(xiàn)。
對于非分屏應用窗口來說,為了將非分屏應用窗口的位置調整至屏幕的左側,可以將所述非分屏應用窗口的橫向起始點坐標值調整為所述屏幕原點的橫向坐標值。通常情況下,屏幕的左上角為其坐標原點(0,0),因此,若要將非分屏應用窗口調整至所述屏幕的左側,可以將非分屏應用窗口的橫向起始點坐標x0調整為0。
另外,如果將非分屏應用窗口的尺寸縮放為屏幕尺寸的二分之一,則非分屏應用窗口的高度為屏幕整個高度的一半。理論上講,只要非分屏應用窗口在高度方向上不超出屏幕的顯示范圍均可以實現(xiàn)本技術方案。也就是說,可以將非分屏應用窗口的縱向起始點坐標值調整為小于或等于所述屏幕的縱向分辨率的二分之一,即將非分屏應用窗口的縱向起始點坐標值y0調整為
如圖4a所示,屏幕的分辨率為1920*1080,屏幕的左上角o為其坐標原點(0,0)。將非分屏應用窗口401的起始點o0的坐標調整為(0,270),使得非分屏應用窗口在屏幕上靠左側居中顯示。
對于分屏應用窗口來說,由于非分屏應用窗口在屏幕中的位置決定了分屏應用窗口中與非分屏應用窗口對應的區(qū)域的位置,因此先將非分屏應用窗口調整至屏幕的對應位置,然后再復制所述屏幕當前顯示的窗口,獲得分屏應用窗口,可以便于非分屏應用窗口的調整。
例如,在本發(fā)明一種優(yōu)選實施例中,可以先將非分屏應用窗口調整至屏幕的左側,然后復制所述屏幕當前顯示的窗口,獲得分屏應用窗口。此時,分屏應用窗口中與非分屏應用窗口對應的區(qū)域位于分屏應用窗口的左側。
surfacecontroller將所述分屏應用窗口的橫向起始點坐標值調整為屏幕的橫向分辨率的二分之一,即
另外,由于分屏應用窗口的高度與屏幕的高度相同,因此將分屏應用窗口的縱向起始點坐標值y1調整為0可以保證非分屏應用窗口和分屏應用窗口中與非分屏應用窗口對應的區(qū)域在同一高度上,避免畫面在高度方向上的錯位。
以圖4b所示的場景為例,virturedisplay將圖4a所示的屏幕復制后,得到與圖4a顯示的內容完全相同的分屏應用窗口402,通過surfacecontroller將分屏應用窗口402的起始點坐標o1調整為(960,0),使得分屏應用窗口402中與非分屏應用窗口對應的區(qū)域在屏幕上靠右側顯示,至此實現(xiàn)終端應用的分屏顯示。
采用本發(fā)明實施例提供的技術方案,在應用程序層通過對屏幕當前顯示窗口的縮放、復制和移動,實現(xiàn)應用的分屏顯示,可以滿足vr眼鏡中3d顯示的需求。
可理解,采用圖3所示的技術方案,當使用終端播放視頻時,非分屏應用窗口中的視頻播放界面是不停的變化的,為了實現(xiàn)非分屏應用窗口和分屏應用窗口中視頻播放界面的同步顯示,需要按照預設的時間間隔對分屏應用窗口進行更新,具體可以包括以下步驟。
圖5本發(fā)明實施例提供的另一種用于vr顯示的終端分屏顯示的方法流程示意圖,其在圖3所示實施例的基礎上還包括以下步驟。
步驟s501:按照預設的時間間隔復制所述屏幕當前顯示的窗口,獲得更新后的分屏應用窗口。
步驟s502:將所述更新后的分屏應用窗口的位置調整至更新前所述分屏應用窗口的位置。
也就是說,在更新前和更新后,分屏應用窗口在屏幕上的位置保持不變。
舉例來說,在t1時刻,圖4b中的非分屏應用窗口401和分屏應用窗口402的視頻播放界面均顯示視頻的第i幀畫面;隨著視頻的播放,在t2時刻,非分屏應用窗口401的視頻播放界面顯示視頻的第i+1幀畫面,此時分屏應用窗口402的視頻播放界面仍然顯示視頻的第i幀畫面(比非分屏應用窗口401滯后一幀),因此需要對分屏應用窗口402進行更新;采用步驟s501和s502所示的方法對分屏應用窗口402更新后,在t3時刻,非分屏應用窗口401和分屏應用窗口402的視頻播放界面均顯示視頻的第i+1幀畫面。雖然分屏應用窗口402相對非分屏應用窗口401的視頻播放界面存在一定的延時,但是該延時屬于毫秒級的,不會影響用戶的視覺體驗。
上述技術方案中,通過先縮放再復制的方式實現(xiàn)終端應用的分屏顯示。在本發(fā)明實施例提供的另一種實現(xiàn)方式中,也可以通過先復制再縮放的方式實現(xiàn)終端應用的分屏顯示。
圖6為本發(fā)明實施例提供的另一種用于vr顯示的終端分屏顯示的方法流程示意圖,如圖6所示,其主要包括以下步驟。
步驟s601:在vr顯示時,復制屏幕當前顯示的窗口,獲得與所述屏幕當前顯示的窗口相同的復制窗口。
在本發(fā)明實施例中,windowstate通過virturedisplay復制屏幕當前顯示的窗口。以圖2所示的場景為例,virturedisplay復制圖2所示的整個屏幕,此時復制窗口和原始窗口疊加在一起。
假如圖2所示的屏幕的分辨率為1920*1080,則此時復制窗口和原始窗口的尺寸均為1920*1080。
步驟s602:分別對所述屏幕當前顯示的窗口和所述復制窗口進行相同的比例縮放,獲得非分屏應用窗口和分屏應用窗口。
其中,所述非分屏應用窗口和所述分屏應用窗口的尺寸小于或等于所述屏幕尺寸的二分之一。理想情況下,將所述非分屏應用窗口和所述分屏應用窗口的尺寸縮放為屏幕尺寸的二分之一可以使得屏幕得到最高的利用率。
在一種可選實施例中,windowstate通過surfacecontroller分別將屏幕當前顯示的窗口和所述復制窗口縮放為原始尺寸的一半。例如原始尺寸為1920*1080,縮放為一半后變?yōu)?60*540。其目的在于將兩個窗口同時顯示在終端的屏幕上。
步驟s503:分別將所述非分屏應用窗口和所述分屏應用窗口的位置調整至所述屏幕的左右兩側。
在本發(fā)明實施例中,以surfacecontroller分別將所述非分屏應用窗口和所述分屏應用窗口的位置調整至屏幕的左側和右側為例進行說明。
由于屏幕上具有自己的坐標系,因此windowstate通過surfacecontroller對非分屏應用窗口的位置進行調整至可以通過設置非分屏應用窗口的起始點坐標來實現(xiàn)。為了將非分屏應用窗口的位置調整至屏幕的左側,可以將所述非分屏應用窗口的橫向起始點坐標值調整為所述屏幕原點的橫向坐標值。通常情況下,屏幕的左上角為其坐標原點(0,0),因此,若要將非分屏應用窗口調整至所述屏幕的左側,可以將非分屏應用窗口的橫向起始點坐標x0調整為0。另外,如果將非分屏應用窗口的尺寸縮放為屏幕尺寸的二分之一,則非分屏應用窗口的高度為屏幕整個高度的一半。理論上講,只要非分屏應用窗口在高度方向上不超出屏幕的顯示范圍均可以實現(xiàn)本技術方案。也就是說,可以將非分屏應用窗口的縱向起始點坐標值調整為小于或等于所述屏幕的縱向分辨率的二分之一,即將非分屏應用窗口的縱向起始點坐標值y0調整為
對于分屏應用窗口來說,可以將分屏應用窗口的橫向起始點坐標值調整為屏幕的橫向分辨率的二分之一。將x1作為分屏應用窗口的橫向起始點坐標值,l作為屏幕的橫向分辨率,即
另外,為了保證分屏應用窗口和非分屏應用窗口所顯示視頻播放界面的高度相同,可配置分屏應用窗口的縱向起始點坐標值y1與非分屏應用窗口的縱向起始點坐標值y0相等。優(yōu)選地,
以圖7所示的場景為例,surfacecontroller將非分屏應用窗口401的起始點坐標o0調整為(0,270);將分屏應用窗口402的起始點坐標o1調整為(960,270)。
采用本發(fā)明實施例提供的技術方案,在應用程序層先對屏幕當前顯示窗口進行復制,然后進行縮放和移動,實現(xiàn)應用的分屏顯示,可以滿足vr眼鏡中3d顯示的需求。
可理解,采用圖6所示的技術方案,當使用終端播放視頻時,非分屏應用窗口中的視頻播放界面是不停的變化的,為了實現(xiàn)非分屏應用窗口和分屏應用窗口中視頻播放界面的同步顯示,需要按照預設的時間間隔對分屏應用窗口進行更新,具體可以包括以下步驟:所述虛擬屏幕模塊按照預設的時間間隔復制所述屏幕當前顯示的窗口,獲得更新后的分屏應用窗口;所述窗口控制模塊將所述更新后的分屏應用窗口的位置調整至所述屏幕的第二側。該部分與圖5所示實施例中的內容可以相互參見,為了描述簡潔在此不再贅述。
需要指出的是,上述實現(xiàn)過程僅是本發(fā)明實施中的一種具體實現(xiàn)方式,除了android系統(tǒng)外,終端也能安裝其它操作系統(tǒng),例如ios或os操作系統(tǒng)等。相應地,終端也可以借助其它操作系統(tǒng)中的功能模塊實現(xiàn)本申請中的技術方案,在不脫離本申請發(fā)明構思的前提下,其均應當處于本申請的保護范圍之內。
在上述方法實施例的基礎上,本發(fā)明實施例還提供了一種終端,該終端的具體形式可以為手機、平板電腦或掌上電腦等。
圖8為本發(fā)明實施例提供的一種終端的結構示意圖,如圖8所示,所述終端800可以包括:處理器810、存儲器820及通信單元830。這些組件通過一條或多條總線進行通信,本領域技術人員可以理解,圖中示出的服務器的結構并不構成對本申請的限定,它既可以是總線形結構,也可以是星型結構,還可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。
其中,所述通信單元830,用于建立通信信道,從而使所述存儲設備可以與其它設備進行通信。接收其他設備發(fā)送的用戶數(shù)據(jù)或者向其他設備發(fā)送用戶數(shù)據(jù)。
所述處理器810,為存儲設備的控制中心,利用各種接口和線路連接整個電子設備的各個部分,通過運行或執(zhí)行存儲在存儲器820內的軟件程序和/或模塊,以及調用存儲在存儲器內的數(shù)據(jù),以執(zhí)行電子設備的各種功能和/或處理數(shù)據(jù)。所述處理器可以由集成電路(integratedcircuit,簡稱ic)組成,例如可以由單顆封裝的ic所組成,也可以由連接多顆相同功能或不同功能的封裝ic而組成。舉例來說,處理器810可以僅包括中央處理器(centralprocessingunit,簡稱cpu)。在本申請實施方式中,cpu可以是單運算核心,也可以包括多運算核心。
所述存儲器820,用于存儲處理器810的執(zhí)行指令,存儲器820可以由任何類型的易失性或非易失性存儲設備或者它們的組合實現(xiàn),如靜態(tài)隨機存取存儲器(sram),電可擦除可編程只讀存儲器(eeprom),可擦除可編程只讀存儲器(eprom),可編程只讀存儲器(prom),只讀存儲器(rom),磁存儲器,快閃存儲器,磁盤或光盤。
當存儲器820中的執(zhí)行指令由處理器810執(zhí)行時,使得終端800能夠執(zhí)行以下上述方法實施例中的部分或全部步驟。
具體實現(xiàn)中,本發(fā)明實施例還提供一種計算機存儲介質,其中,該計算機存儲介質可存儲有程序,該程序執(zhí)行時可包括本申請?zhí)峁┑母鲗嵤├械牟糠只蛉坎襟E。所述的存儲介質可為磁碟、光盤、只讀存儲記憶體(英文:read-onlymemory,簡稱:rom)或隨機存儲記憶體(英文:randomaccessmemory,簡稱:ram)等。
本領域的技術人員可以清楚地了解到本發(fā)明實施例中的技術可借助軟件加必需的通用硬件平臺的方式來實現(xiàn)。基于這樣的理解,本發(fā)明實施例中的技術方案本質上或者說對現(xiàn)有技術做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在存儲介質中,如rom/ram、磁碟、光盤等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例或者實施例的某些部分所述的方法。
本說明書中各個實施例之間相同相似的部分互相參見即可。尤其,對于終端實施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關之處參見方法實施例中的說明即可。
以上所述的本申請實施方式并不構成對本申請保護范圍的限定。