本發(fā)明涉及顯示技術領域,尤其涉及一種投屏批注方法和系統(tǒng)。
背景技術:
在現(xiàn)代化的課堂上,多媒體互動式教學是現(xiàn)代化課堂的重要組成部分。多媒體交互教學主要通過壓縮教師教學現(xiàn)場的視頻、音頻流結合同步瀏覽課件命令,形成教學資源流,利用網(wǎng)絡實時傳送到遠端學生的電腦上,學生可以及時通過舉手提問、共享教師端程序、文字交流等方式實現(xiàn)互動教學。如以下場景:學生利用電子書本、筆記本電腦、平板、手機終端等獲取教學課件以及課堂作業(yè),并現(xiàn)場提交作業(yè),甚至提交自己的學習進度以便教師安排;學生將自己的移動終端屏幕投影到無線投屏儀上提問或是分享,教師通過遠程控制來進行指導。這就要求無線投屏的過程中具有良好的流暢性和實時性。流暢性是指在傳屏播放過程中不出現(xiàn)卡頓、不出現(xiàn)畫面失真,同時播放的幀率至少20fps以上;實時性是指兩個終端間的畫面同步延時至少要小于200ms。
目前,采用標準協(xié)議所能達到的無線投屏的同步延時基本在200ms以上,甚至達到秒級,特別是在無線環(huán)境和硬件資源差的條件下,導致了顯示批注的筆記滯后而引起操作不便,降低用戶體驗感。
技術實現(xiàn)要素:
本發(fā)明的目的是提供一種投屏批注方法和系統(tǒng),解決了由于無線環(huán)境和硬件資源影響產(chǎn)生的顯示批注的筆記滯后導致操作不便的問題,讓用戶感覺不到書寫的遲鈍感,提高用戶體驗感。
本發(fā)明提供了一種投屏批注方法,包括以下步驟:
將第一終端分為多個畫布層,所述多個畫布層包括第一畫布層和第二畫布層;
實時獲取坐標信息,根據(jù)所述坐標信息在所述第一畫布層上繪制第一批注筆跡直接顯示,同時將所述坐標信息通過網(wǎng)絡傳輸至第二終端;
對所述坐標信息進行換算,得到坐標換算信息,并根據(jù)所述坐標換算信息在所述第二終端中繪制第二批注筆跡;
獲取并存儲所述第二終端上當前屏幕的截屏圖像,將所述截屏圖像通過網(wǎng)絡傳輸至所述第一終端,并將所述截屏圖像顯示在所述第二畫布層上;
擦除所述第一畫布層上繪制的所述第一批注筆跡,顯示所述第二畫布層上的所述截屏圖像。
作為一種可實施方式,所述實時獲取坐標信息,根據(jù)所述坐標信息在所述第一畫布層上繪制第一批注筆跡直接顯示,包括以下步驟:
在實時獲取坐標信息后,根據(jù)時間順序?qū)⒚總€所述坐標信息進行存儲,得到第一隊列數(shù)據(jù);
將所述第一隊列數(shù)據(jù)中每個相鄰的所述坐標信息進行繪制,得到第三批注筆跡;
同時獲取傳輸延遲值,并根據(jù)所述傳輸延遲值提取第一隊列數(shù)據(jù)中相應的所述坐標信息,得到坐標延遲信息;
根據(jù)所述坐標延遲信息對所述第三批注筆跡進行擦除繪制,得到第一批注筆跡。
作為一種可實施方式,所述同時將所述坐標信息通過網(wǎng)絡傳輸至第二終端,包括以下步驟:
將單次的所述坐標信息通過網(wǎng)絡傳輸至第二終端;
或,根據(jù)預設時間將所述坐標信息通過網(wǎng)絡傳輸至第二終端。
作為一種可實施方式,所述對所述坐標信息進行換算,得到坐標換算信息,并根據(jù)所述坐標換算信息在所述第二終端中繪制第二批注筆跡,包括以下步驟:
獲取所述第一終端的第一分辨率和所述第二終端的第二分辨率;
根據(jù)所述第一分辨率和所述第二分辨率,對所述坐標信息進行換算,得到坐標換算信息;
根據(jù)時間順序?qū)⒚總€所述坐標換算信息進行存儲,得到第二隊列數(shù)據(jù);
將所述第二隊列數(shù)據(jù)中每個相鄰的所述坐標換算信息進行繪制,得到第二批注筆跡。
作為一種可實施方式,所述獲取并存儲所述第二終端上當前屏幕的截屏圖像,將所述截屏圖像通過網(wǎng)絡傳輸至所述第一終端,并將所述截屏圖像顯示在所述第二畫布層上,還包括以下步驟:
在獲取并存儲所述第二終端上當前屏幕的截屏圖像后,對所述截屏圖像進行壓縮處理。
在將所述截屏圖像顯示在所述第二畫布層上前,對所述截屏圖像進行解碼、渲染處理,并將處理結果顯示在所述第二畫布層上。
相應的,本發(fā)明還提供一種投屏批注系統(tǒng),包括分層模塊、獲取批注模塊、換算批注模塊、獲取顯示模塊以及擦除模塊;
所述分層模塊,用于將第一終端分為多個畫布層,所述多個畫布層包括第一畫布層和第二畫布層;
所述獲取批注模塊,用于實時獲取坐標信息,根據(jù)所述坐標信息在所述第一畫布層上繪制第一批注筆跡直接顯示,同時將所述坐標信息通過網(wǎng)絡傳輸至第二終端;
所述換算批注模塊,用于對所述坐標信息進行換算,得到坐標換算信息,并根據(jù)所述坐標換算信息在所述第二終端中繪制第二批注筆跡;
所述獲取顯示模塊,用于獲取并存儲所述第二終端上當前屏幕的截屏圖像,將所述截屏圖像通過網(wǎng)絡傳輸至所述第一終端,并將所述截屏圖像顯示在所述第二畫布層上;
所述擦除模塊,用于擦除所述第一畫布層上繪制的所述第一批注筆跡,顯示所述第二畫布層上的所述截屏圖像。
作為一種可實施方式,所述獲取批注模塊包括第一存儲單元、第一繪制單元、提取單元以及擦除繪制單元;
所述第一存儲單元,用于在實時獲取坐標信息后,根據(jù)時間順序?qū)⒚總€所述坐標信息進行存儲,得到第一隊列數(shù)據(jù);
所述第一繪制模塊,用于將所述第一隊列數(shù)據(jù)中每個相鄰的所述坐標信息進行繪制,得到第三批注筆跡;
所述提取單元,用于同時獲取傳輸延遲值,并根據(jù)所述傳輸延遲值提取第一隊列數(shù)據(jù)中相應的所述坐標信息,得到坐標延遲信息;
所述擦除繪制單元,用于根據(jù)所述坐標延遲信息對所述第三批注筆跡進行擦除繪制,得到第一批注筆跡。
作為一種可實施方式,所述獲取批注模塊還包括單此傳輸單元或批量傳輸單元;
所述單此傳輸單元,用于將單次的所述坐標信息通過網(wǎng)絡傳輸至第二終端;
所述批量傳輸單元,用于根據(jù)預設時間將所述坐標信息通過網(wǎng)絡傳輸至第二終端。
作為一種可實施方式,所述換算批注模塊包括獲取分辨率單元、換算單元、第二存儲單元以及第二繪制單元;
所述獲取分辨率單元,用于獲取所述第一終端的第一分辨率和所述第二終端的第二分辨率;
所述換算單元,用于根據(jù)所述第一分辨率和所述第二分辨率,對所述坐標信息進行換算,得到坐標換算信息;
所述第二存儲單元,用于根據(jù)時間順序?qū)⒚總€所述坐標換算信息進行存儲,得到第二隊列數(shù)據(jù);
所述第二繪制單元,用于將所述第二隊列數(shù)據(jù)中每個相鄰的所述坐標換算信息進行繪制,得到第二批注筆跡。
作為一種可實施方式,所述獲取顯示模塊包括壓縮單元和解碼渲染單元;
所述壓縮單元,用于在獲取并存儲所述第二終端上當前屏幕的截屏圖像后,對所述截屏圖像進行壓縮處理;
所述解碼渲染單元,用于在將所述截屏圖像顯示在所述第二畫布層上前,對所述截屏圖像進行解碼、渲染處理,并將處理結果顯示在所述第二畫布層上。
與現(xiàn)有技術相比,本技術方案具有以下優(yōu)點:
本發(fā)明提供的投屏批注方法和系統(tǒng),通過將第一終端分為第一畫布層和第二畫布層,用戶在第一終端上做標注時,第一終端的第一畫布層中直接繪制出第一批注筆跡,立即呈現(xiàn)給使用者觀看。在第一終端顯示第一批注筆跡上的同時,第一終端向第二終端傳輸坐標信息,第二終端根據(jù)坐標信息繪制第二批注筆跡。并且將第二批注筆跡進行回傳,在第一終端的第二畫布層中顯示,同時擦除第一畫布層上繪制的第一批注筆跡,最終呈現(xiàn)給用戶觀看。本發(fā)明解決了由于無線環(huán)境和硬件資源影響產(chǎn)生的顯示批注的筆記滯后導致操作不便的問題,實現(xiàn)了在無線投屏的過程中,在畫面?zhèn)鬏敃r的同步延時客觀存在的情況下,使用戶在進行遠程批注時,書寫能夠得到實時響應,不僅讓用戶感覺不到書寫的遲鈍感,而且提高用戶體驗感。
附圖說明
圖1為本發(fā)明實施例一提供的投屏批注方法的流程示意圖;
圖2為本發(fā)明實施例二提供的投屏批注系統(tǒng)的結構示意圖;
圖3為圖2中獲取批注模塊的結構示意圖;
圖4為圖2中換算批注模塊的結構示意圖;
圖中:100、分層模塊;200、獲取批注模塊;210、第一存儲單元;220、第一繪制單元;230、提取單元;240、擦除繪制單元;300、換算批注模塊;310、獲取分辨率單元;320、換算單元;330、第二存儲單元;340、第二繪制單元;400、獲取顯示模塊;410、壓縮單元;420、解碼渲染單元;500、擦除模塊。
具體實施方式
以下結合附圖,對本發(fā)明上述的和另外的技術特征和優(yōu)點進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明的部分實施例,而不是全部實施例。
請參閱圖1,本發(fā)明實施例一提供的投屏批注方法,包括以下步驟:
s100、將第一終端分為多個畫布層,多個畫布層包括第一畫布層和第二畫布層;
s200、實時獲取坐標信息,根據(jù)坐標信息在第一畫布層上繪制第一批注筆跡直接顯示,同時將坐標信息通過網(wǎng)絡傳輸至第二終端;
s300、對坐標信息進行換算,得到坐標換算信息,并根據(jù)坐標換算信息在第二終端中繪制第二批注筆跡;
s400、獲取并存儲第二終端上當前屏幕的截屏圖像,將截屏圖像通過網(wǎng)絡傳輸至第一終端,并將截屏圖像顯示在第二畫布層上;
s500、擦除第一畫布層上繪制的第一批注筆跡,顯示第二畫布層上的截屏圖像。
這里需要對多個畫布層中進行說明,于本實施例中只用到第一畫布層和第二畫布層用來繪制顯示,其他畫布層設置為不影響呈現(xiàn)效果,例如設置為空白層;而第一畫布層設置在第二畫布層的上層,也就是說第一畫布層設置在接近視覺處,第二畫布層的設置在遠離視覺處;通過這種方式,在第二畫布層上顯示的第二批注筆跡可以被顯示在第一畫布層上的第一批注筆跡覆蓋;而在第一批注筆跡被擦除后,第二批注筆跡可以呈現(xiàn)。第一終端是一個帶有批注和遠程交互功能的裝置,可以是電子書本、電腦、平板以及手機終端的一種;第二終端是一個帶有處理功能的裝置,可以是電腦。
實時獲取坐標信息可以是在響應于點擊第一終端,每一次點擊都會將點擊的當前坐標信息實時記錄下來,提高繪制線條的清晰度。
為了保證坐標信息傳輸?shù)募皶r性,在網(wǎng)絡傳輸時使用udp(userdatagramprotocol,用戶數(shù)據(jù)協(xié)議)和幀率自動調(diào)節(jié)機制。udp是osi(opensysteminterconnection,開放式系統(tǒng)互聯(lián))參考模型中一種無連接的傳輸層協(xié)議。利用udp數(shù)據(jù)包傳輸策略和幀率自動調(diào)節(jié)機制使得本實施例資源消耗小,處理速度快。
本發(fā)明提供的投屏批注方法,通過將第一終端分為第一畫布層和第二畫布層,用戶在第一終端上做標注時,第一終端的第一畫布層中直接繪制出第一批注筆跡,立即呈現(xiàn)給使用者觀看。在第一終端顯示第一批注筆跡上的同時,第一終端向第二終端傳輸坐標信息,第二終端根據(jù)坐標信息繪制第二批注筆跡。并且將第二批注筆跡進行回傳,在第一終端的第二畫布層中顯示,同時擦除第一畫布層上繪制的第一批注筆跡,最終呈現(xiàn)給用戶觀看。本發(fā)明解決了由于無線環(huán)境和硬件資源影響產(chǎn)生的顯示批注的筆記滯后導致操作不便的問題,實現(xiàn)了在無線投屏的過程中,在畫面?zhèn)鬏敃r的同步延時客觀存在的情況下,使用戶在進行遠程批注時,書寫能夠得到實時響應,不僅讓用戶感覺不到書寫的遲鈍感,而且提高用戶體驗感。
具體的,步驟s200包括以下步驟:
s210、在實時獲取坐標信息后,根據(jù)時間順序?qū)⒚總€坐標信息進行存儲,得到第一隊列數(shù)據(jù);
s220、將第一隊列數(shù)據(jù)中每個相鄰的坐標信息進行繪制,得到第三批注筆跡;
s230、同時獲取傳輸延遲值,并根據(jù)傳輸延遲值提取第一隊列數(shù)據(jù)中相應的坐標信息,得到坐標延遲信息;
s240、根據(jù)坐標延遲信息對第三批注筆跡進行擦除繪制,得到第一批注筆跡。
例如,第一終端程序啟用兩個線程使用兩層畫布,包括第一畫布層和第二畫布層,都是定義的canvas類,第二畫布層用來顯示第二終端傳輸回來的第二批注筆跡,第一畫布層用來顯示在第一終端的屏幕畫的第一批注筆跡。在第一畫布層中,實時獲取坐標信息采用ontouchevent(motioneventevent)方法來檢測到鼠標左擊的動作motionevent.action_down時,記錄下坐標信息(x2,y2),根據(jù)時間順序?qū)⒆鴺诵畔?x2,y2)存入第一隊列數(shù)據(jù)中。然后調(diào)用canvas.drawpath(mypath,mypaint)來畫線,將第一隊列數(shù)據(jù)中每個相鄰的坐標信息進行繪制,也就是將(x2,y2)與隊列中的上一個坐標(x1,y1)用線連接起來,最終將第一隊列數(shù)據(jù)中每個相鄰的坐標信息用線連接起來得到第三批注筆跡。為了防止繪制結束后畫布被清空,調(diào)用方法canvas.drawbitmap(mybitmap,0,0,mbitmappaint)。
在獲取傳輸延遲值,并根據(jù)傳輸延遲值提取第一隊列數(shù)據(jù)中相應的坐標信息,得到坐標延遲信息;采用調(diào)用方法mybitmap.erasecolor(myresources.getcolor(r.color.touming))將位圖清除為白色,并且調(diào)用invalidate()根據(jù)坐標延遲信息刷新繪制得到第一批注筆跡。
這里需要說明的是對于存放坐標的隊列長度的計算:假設鼠標移動一個坐標的時間是t毫秒,則第一終端存放坐標的隊列的長度為l>=n/t。如果隊列的長度太長,會浪費資源;如果隊列的長度太短,則會在擦除的時候,使得前面的線條擦除不干凈,而影響批注視覺體驗。
采用上述方法,在無線投屏的過程中,在畫面?zhèn)鬏敃r的同步延時客觀存在的情況下,使用戶在進行遠程批注時,保證第一終端和第二終端的顯示的批注筆跡一致性,不僅讓用戶感覺不到書寫的遲鈍感,而且提高用戶體驗感。
具體的,步驟s200還包括以下步驟:
將單次的坐標信息通過網(wǎng)絡傳輸至第二終端;將坐標信息進行單次傳輸使得繪制的批注筆跡更加清楚,提高批注筆跡質(zhì)量。
或,根據(jù)預設時間將坐標信息通過網(wǎng)絡傳輸至第二終端;降低系統(tǒng)運算負擔,提高運算速率;于本實施例中,采用根據(jù)預設時間將坐標信息通過網(wǎng)絡傳輸至第二終端,預設時間根據(jù)網(wǎng)絡傳輸?shù)膫鬏斞舆t值確定。
具體的,步驟s300包括以下步驟:
s310、獲取第一終端的第一分辨率和第二終端的第二分辨率;
s320、根據(jù)第一分辨率和第二分辨率,對坐標信息進行換算,得到坐標換算信息;
s330、根據(jù)時間順序?qū)⒚總€坐標換算信息進行存儲,得到第二隊列數(shù)據(jù);
s340、將第二隊列數(shù)據(jù)中每個相鄰的坐標換算信息進行繪制,得到第二批注筆跡。
對坐標信息進行換算的換算公式為:
式中,第二終端坐標換算信息為(x'2,y'2)、第一終端坐標信息為(x2,y2)、第一終端屏幕分辨率為(w1,h1)以及第二終端屏幕分辨率為(w2,h2)。
具體的,步驟s400還包括以下步驟:
s410、在獲取并存儲第二終端上當前屏幕的截屏圖像后,對截屏圖像進行壓縮處理。采用h.264的壓縮技術,提高傳輸速度,降低資源占用率;
s420、在將截屏圖像顯示在第二畫布層上前,對截屏圖像進行解碼、渲染處理,并將處理結果顯示在第二畫布層上。
第一終端使用ffmpeg視頻解碼庫對接收到的截屏圖像進行解碼,得到的yuv圖像數(shù)據(jù)格式,再對yuv圖像數(shù)據(jù)進行渲染處理。用戶最后看到的圖像是兩層畫布層上的像素按不同比例合成的。兩層畫布層上的像素都采用rgba的格式(a代表透明度),在同一坐標下,第一畫布層的像素為r1g1b1a1,第二畫布層的像素為r2g2b2a2,其中,a1+a2=255。最后,用戶看到的點的像素為rgb,其中r=(r1a1+r2a2)/255,g=(g1a1+g2a2)/255,b=(b1a1+b2a2)/255。剛開始時,第一畫布層是透明的(讓所有的像素點的a1設置為0),當在第一畫布層上開始畫線時,根據(jù)第一隊列數(shù)據(jù)中的坐標信息,將顯示出來的線條的像素點的a1設置為255;當客戶端的屏幕顯示在第二畫布層時,就需要將第一畫布層上前n毫秒的像素點的a1設置為0。在判斷鼠標的狀態(tài)為motionevent.action_up時,將第一隊列數(shù)據(jù)中所有坐標信息的像素點中的a1設置為0。清空隊列,將上一層畫布的位圖全部清除為透明色,從而能將下一層的圖像全部顯示出來。
采用上述方法,在網(wǎng)絡狀態(tài)很差的情況下,也能保證在無線投屏的過程中,第一終端和第二終端的顯示的批注筆跡一致性,不僅讓用戶感覺不到書寫的遲鈍感,而且提高用戶體驗感。
基于同一發(fā)明構思,本發(fā)明實施例還提供一種投屏批注系統(tǒng),該系統(tǒng)的實施可參照上述方法的過程實現(xiàn),重復之處不再冗述。
如圖2所示,是本發(fā)明實施例二提供的投屏批注系統(tǒng)的結構示意圖,包括:
分層模塊100用于將第一終端分為多個畫布層,多個畫布層包括第一畫布層和第二畫布層;
獲取批注模塊200用于實時獲取坐標信息,根據(jù)坐標信息在第一畫布層上繪制第一批注筆跡直接顯示,同時將坐標信息通過網(wǎng)絡傳輸至第二終端;
換算批注模塊300用于對坐標信息進行換算,得到坐標換算信息,并根據(jù)坐標換算信息在第二終端中繪制第二批注筆跡;
獲取顯示模塊400用于獲取并存儲第二終端上當前屏幕的截屏圖像,將截屏圖像通過網(wǎng)絡傳輸至第一終端,并將截屏圖像顯示在第二畫布層上;
擦除模塊500用于擦除第一畫布層上繪制的第一批注筆跡,顯示第二畫布層上的截屏圖像。
如圖3所示,是獲取批注模塊200的結構示意圖,包括第一存儲單元210、第一繪制單元220、提取單元230以及擦除繪制單元240;
第一存儲單元210用于在實時獲取坐標信息后,根據(jù)時間順序?qū)⒚總€坐標信息進行存儲,得到第一隊列數(shù)據(jù);
第一繪制模塊用于將第一隊列數(shù)據(jù)中每個相鄰的坐標信息進行繪制,得到第三批注筆跡;
提取單元230用于同時獲取傳輸延遲值,并根據(jù)傳輸延遲值提取第一隊列數(shù)據(jù)中相應的坐標信息,得到坐標延遲信息;
擦除繪制單元240用于根據(jù)坐標延遲信息對第三批注筆跡進行擦除繪制,得到第一批注筆跡。
進一步地,獲取批注模塊200還包括單此傳輸單元或批量傳輸單元;
單此傳輸單元用于將單次的坐標信息通過網(wǎng)絡傳輸至第二終端;
批量傳輸單元用于根據(jù)預設時間將坐標信息通過網(wǎng)絡傳輸至第二終端。
如圖4所示,是換算批注模塊300的結構示意圖,包括獲取分辨率單元310、換算單元320、第二存儲單元330以及第二繪制單元340;
獲取分辨率單元310用于獲取第一終端的第一分辨率和第二終端的第二分辨率;
換算單元320用于根據(jù)第一分辨率和第二分辨率,對坐標信息進行換算,得到坐標換算信息;
第二存儲單元330用于根據(jù)時間順序?qū)⒚總€坐標換算信息進行存儲,得到第二隊列數(shù)據(jù);
第二繪制單元340用于將第二隊列數(shù)據(jù)中每個相鄰的坐標換算信息進行繪制,得到第二批注筆跡。
進一步地,參閱圖1,獲取顯示模塊400包括壓縮單元410和解碼渲染單元420;
壓縮單元410用于在獲取并存儲第二終端上當前屏幕的截屏圖像后,對截屏圖像進行壓縮處理。
解碼渲染單元420用于在將截屏圖像顯示在第二畫布層上前,對截屏圖像進行解碼、渲染處理,并將處理結果顯示在第二畫布層上。
本發(fā)明提供的投屏批注系統(tǒng),通過將第一終端分為第一畫布層和第二畫布層,用戶在第一終端上做標注時,第一終端的第一畫布層中直接繪制出第一批注筆跡,立即呈現(xiàn)給使用者觀看。在第一終端顯示第一批注筆跡上的同時,第一終端向第二終端傳輸坐標信息,第二終端根據(jù)坐標信息繪制第二批注筆跡。并且將第二批注筆跡進行回傳,在第一終端的第二畫布層中顯示,同時擦除第一畫布層上繪制的第一批注筆跡,最終呈現(xiàn)給用戶觀看。本發(fā)明解決了由于無線環(huán)境和硬件資源影響產(chǎn)生的顯示批注的筆記滯后導致操作不便的問題,實現(xiàn)了在無線投屏的過程中,在畫面?zhèn)鬏敃r的同步延時客觀存在的情況下,使用戶在進行遠程批注時,書寫能夠得到實時響應,不僅讓用戶感覺不到書寫的遲鈍感,而且提高用戶體驗感。
本發(fā)明雖然已以較佳實施例公開如上,但其并不是用來限定本發(fā)明,任何本領域技術人員在不脫離本發(fā)明的精神和范圍內(nèi),都可以利用上述揭示的方法和技術內(nèi)容對本發(fā)明技術方案做出可能的變動和修改,因此,凡是未脫離本發(fā)明技術方案的內(nèi)容,依據(jù)本發(fā)明的技術實質(zhì)對以上實施例所作的任何簡單修改、等同變化及修飾,均屬于本發(fā)明技術方案的保護范圍。