本發(fā)明涉及移動(dòng)通信技術(shù)領(lǐng)域,特別涉及一種分享視頻流數(shù)據(jù)的方法、源設(shè)備及電子設(shè)備。
背景技術(shù):
Miracast是以WIFI直連為基礎(chǔ)的無線顯示標(biāo)準(zhǔn),是利用WIFI Direct建立的P2P網(wǎng)絡(luò)(Peer-to-peer networking)實(shí)現(xiàn)一個(gè)設(shè)備向另一個(gè)設(shè)備實(shí)現(xiàn)同步傳屏的技術(shù)。其中,發(fā)送端稱為源設(shè)備(source),接收端稱為目標(biāo)設(shè)備(Sink)。目前Miracast技術(shù)越來越普及,很多智能手機(jī)、平板電腦、掌上電腦、筆記本電腦、臺(tái)式電腦、智能電視等設(shè)備支持Miracast功能。例如,一臺(tái)支持Miracast功能的智能手機(jī)(源設(shè)備)與一臺(tái)支持Miracast功能的智能電視(目標(biāo)設(shè)備)基于Miracast建立連接后,可以實(shí)現(xiàn)將智能手機(jī)的屏幕畫面同步顯示在智能電視上,從而實(shí)現(xiàn)智能手機(jī)與智能電視的屏幕畫面共享。
在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)至少存在如下問題:由于源設(shè)備和目標(biāo)設(shè)備一旦在基于Miracast協(xié)議建立連接后,除非斷開連接,否則源設(shè)備和目標(biāo)設(shè)備的屏幕畫面會(huì)在整個(gè)傳屏的過程中完全同步。這意味著如果源設(shè)備臨時(shí)需要運(yùn)行一些具有隱私性的應(yīng)用程序時(shí)(如通話軟件、金融交易軟件),目標(biāo)設(shè)備的屏幕也會(huì)同步顯示該應(yīng)用程序的界面。此時(shí),如果用戶不希望將具有隱私性的應(yīng)用程序的界面同步顯示到目標(biāo)設(shè)備,就必須斷開連接以暫停傳屏,當(dāng)用戶希望具有隱私性的應(yīng)用程序運(yùn)行結(jié)束后繼續(xù)與目標(biāo)設(shè)備進(jìn)行傳屏,就需要再一次與目標(biāo)設(shè)備建立連接。這樣會(huì)帶來耗費(fèi)時(shí)間、操作復(fù)雜的問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是實(shí)現(xiàn)源設(shè)備和目標(biāo)設(shè)備在基于Miracast建立連接后的共享多媒體文件的過程中,能夠在不斷開連接、仍舊共享多媒體文件的情況下,實(shí)現(xiàn)源設(shè)備與目標(biāo)設(shè)備的屏幕畫面不同步,從而當(dāng)源設(shè)備運(yùn)行隱私程序時(shí),既保護(hù)用戶的隱私,又省去再次連接的步驟,簡(jiǎn)化了操作過程、節(jié)約了時(shí)間。
根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了一種發(fā)送視頻流數(shù)據(jù)的方法,包括:獲取異步指令;響應(yīng)所述異步指令,控制Miracast模塊停止從屏幕錄像緩存區(qū)中抓取第一視頻流數(shù)據(jù),并控制Miracast模塊從正在運(yùn)行的播放器所對(duì)應(yīng)的視頻緩存區(qū)中獲取第二視頻流數(shù)據(jù);其中,所述第一視頻流數(shù)據(jù)為Miracast模塊對(duì)呈現(xiàn)在屏幕中的畫面進(jìn)行錄像得到的數(shù)據(jù);通過基于WIFI Direct協(xié)議建立的通信通道將所述第二視頻流數(shù)據(jù)發(fā)送。
根據(jù)本發(fā)明實(shí)施例的又一方面,提供了一種發(fā)送視頻流數(shù)據(jù)的源設(shè)備,包括:指令獲取模塊,用于獲取異步指令;更改抓取模塊,用于在接收到所述異步指令后,控制Miracast模塊停止從屏幕錄像緩存區(qū)中抓取第一視頻流數(shù)據(jù),并控制Miracast模塊從正在運(yùn)行的播放器所對(duì)應(yīng)的視頻緩存區(qū)中獲取第二視頻流數(shù)據(jù);其中,所述第一視頻流數(shù)據(jù)為Miracast模塊對(duì)呈現(xiàn)在屏幕中的畫面進(jìn)行錄像得到的數(shù)據(jù);通信模塊,用于通過基于WIFI Direct協(xié)議建立的通信通道將所述第二視頻流數(shù)據(jù)發(fā)送。
根據(jù)本發(fā)明實(shí)施例的又一方面,提供了一種電子設(shè)備,包括:至少一個(gè)第一處理器;以及,
與所述至少一個(gè)第一處理器通信連接的第一存儲(chǔ)器;其中,
所述第一存儲(chǔ)器存儲(chǔ)有可被所述至少一個(gè)第一處理器執(zhí)行的指令,所述指令被所述至少一個(gè)第一處理器執(zhí)行,以使所述至少一個(gè)第一處理器能夠?qū)崿F(xiàn)如上所述的發(fā)送視頻流數(shù)據(jù)的方法。
本發(fā)明實(shí)施例的有益效果在于,因?yàn)椴捎昧嗽讷@取異步指令后,從正在運(yùn)行的播放器所對(duì)應(yīng)的視頻緩存區(qū)中獲取視頻流數(shù)據(jù),而不是從屏幕錄像緩存區(qū)中獲取視頻流數(shù)據(jù),所以克服了現(xiàn)有技術(shù)中在基于Miracast進(jìn)行傳屏的過程中,源設(shè)備與目標(biāo)設(shè)備的屏幕所顯示的畫面必須時(shí)時(shí)一致的技術(shù)問題,進(jìn)而達(dá)到能根據(jù)用戶的需求實(shí)現(xiàn)在需要一致的時(shí)候一致,在不需要一致的時(shí)候能夠保證屏幕顯示的畫面不一致但目標(biāo)設(shè)備仍舊能夠接收到源設(shè)備向其分享的視頻文件的技術(shù)效果。
附圖說明
圖1是現(xiàn)有技術(shù)中基于Miracast建立連接的源設(shè)備與目標(biāo)設(shè)備共享多媒體文件的示意圖;
圖2是本發(fā)明發(fā)送視頻流數(shù)據(jù)方法的第一實(shí)施例的流程圖;
圖3是本發(fā)明發(fā)送視頻流數(shù)據(jù)方法的第二實(shí)施例的流程圖;
圖4是本發(fā)明發(fā)送視頻流數(shù)據(jù)方法的第三實(shí)施例的流程圖;
圖5是本發(fā)明發(fā)送視頻流數(shù)據(jù)的源設(shè)備的第一實(shí)施例的模塊關(guān)系圖;
圖6是本發(fā)明發(fā)送視頻流數(shù)據(jù)的源設(shè)備的第二實(shí)施例的模塊關(guān)系圖;
圖7是本發(fā)明發(fā)送視頻流數(shù)據(jù)的源設(shè)備的第三實(shí)施例的模塊關(guān)系圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明了,下面結(jié)合具體實(shí)施方式并參照附圖,對(duì)本發(fā)明進(jìn)一步詳細(xì)說明。應(yīng)該理解,這些描述只是示例性的,而并非要限制本發(fā)明的范圍。此外,在以下說明中,省略了對(duì)公知結(jié)構(gòu)和技術(shù)的描述,以避免不必要地混淆本發(fā)明的概念。
圖1是現(xiàn)有技術(shù)中基于Miracast建立連接的源設(shè)備與目標(biāo)設(shè)備共享多媒體文件的示意圖。
如圖1所示,現(xiàn)有技術(shù)中,源設(shè)備包括Miracast模塊和通信模塊。其中,Miracast模塊包括鏡像單元、抓取單元。鏡像單元,用于對(duì)呈現(xiàn)在屏幕中的畫面進(jìn)行錄像,得到第一視頻流數(shù)據(jù)。抓取單元,用于對(duì)從屏幕錄像緩存區(qū)中抓取第一視頻流數(shù)據(jù),并將所述第一視頻流數(shù)據(jù)發(fā)送至通信模塊。通信模塊基于WIFI Direct協(xié)議建立的通信通道將第一視頻流數(shù)據(jù)發(fā)送至目標(biāo)設(shè)備。其中,屏幕錄像緩存區(qū)為源設(shè)備的CPU的緩存器中開辟的一塊區(qū)域,用于存儲(chǔ)鏡像單元對(duì)呈現(xiàn)在屏幕中的畫面進(jìn)行錄像所得到的第一視頻流數(shù)據(jù)。
源設(shè)備在與目標(biāo)設(shè)備的Miracast模塊建立連接后,Miracast模塊的鏡像單元啟動(dòng),對(duì)呈現(xiàn)在源設(shè)備的屏幕顯示模塊中的畫面進(jìn)行錄像得到視頻流數(shù)據(jù),并將視頻流數(shù)據(jù)存放在屏幕錄像緩存區(qū)中,之后將視頻流數(shù)據(jù)發(fā)送至目標(biāo)設(shè)備??芍?,源設(shè)備與目標(biāo)設(shè)備實(shí)現(xiàn)屏幕共享的畫面即為存放在屏幕錄像緩存區(qū)中的視頻流數(shù)據(jù)。
鑒于源設(shè)備與目標(biāo)設(shè)備實(shí)現(xiàn)屏幕共享的畫面為存放在屏幕錄像緩存區(qū)中的視頻流數(shù)據(jù)。以下以一個(gè)具體實(shí)例來說明在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)的問題。
一部支持Miracast協(xié)議的手機(jī)(源設(shè)備)與一臺(tái)支持Miracast協(xié)議的電視(目標(biāo)設(shè)備)建立連接后,當(dāng)在手機(jī)的前臺(tái)運(yùn)行播放器以播放一個(gè)視頻,手機(jī)的屏幕會(huì)顯示該視頻的播放畫面,Miracast模塊的鏡像單元啟動(dòng),對(duì)呈現(xiàn)在手機(jī)屏幕中的畫面進(jìn)行錄像得到視頻流數(shù)據(jù),并將視頻流數(shù)據(jù)存放在屏幕錄像緩存區(qū)中,Miracast模塊的抓取單元將視頻流數(shù)據(jù)從屏幕錄像緩存區(qū)取出并將其發(fā)送至手機(jī)的通信模塊,通信模塊再將其發(fā)送至電視。電視的屏幕則同步顯示該視頻的播放畫面。此時(shí),當(dāng)手機(jī)的用戶需要臨時(shí)運(yùn)行其他應(yīng)用程序但不希望關(guān)閉視頻播放器(因?yàn)橛行┮曨l播放器一但關(guān)閉后再開啟后,不會(huì)保留歷史播放記錄,會(huì)重頭播放),會(huì)將視頻播放器退到后臺(tái)運(yùn)行,手機(jī)的屏幕畫面由之前的視頻播放畫面替換為該應(yīng)用程序的界面,由于Miracast模塊的鏡像單元始終是對(duì)呈現(xiàn)在手機(jī)屏幕中的畫面進(jìn)行錄像得到視頻流數(shù)據(jù),此時(shí)得到的視頻流數(shù)據(jù)的內(nèi)容為應(yīng)用程序的界面,電視的屏幕因此會(huì)同步顯示該應(yīng)用程序的界面。如果臨時(shí)運(yùn)行的應(yīng)用程序具有隱私性(如通話軟件、金融交易軟件),此時(shí),電視的屏幕同步顯示該應(yīng)用程序的界面則會(huì)暴露用戶的隱私。如果用戶不希望暴露隱私,則只能斷開當(dāng)前手機(jī)與電視的連接,待具該應(yīng)用程序運(yùn)行結(jié)束后再一次與電視連接。這樣會(huì)帶來耗費(fèi)時(shí)間、操作復(fù)雜的問題。
圖2是本發(fā)明發(fā)送視頻流數(shù)據(jù)方法的第一實(shí)施例的流程圖。其中,圖2所示的發(fā)送視頻流數(shù)據(jù)方法可以適用于支持Miracast的智能手機(jī)(如Android手機(jī)、Ios手機(jī))、平板電腦、掌上電腦、移動(dòng)互聯(lián)網(wǎng)設(shè)備MoobileInernetDevices以及智能電視、臺(tái)式電腦等設(shè)備。
如圖2所示,在本實(shí)施例中,發(fā)送視頻流數(shù)據(jù)方法包括一下步驟S1-S3:
步驟S1,獲取異步指令。
具體為獲取用戶發(fā)送的異步指令。本發(fā)明實(shí)施例中,用戶發(fā)送異步指令的方式具有多樣性,例如,用戶可以通過在源設(shè)備上觸碰按鈕進(jìn)行發(fā)送異步指令,也可以是用戶通過甩動(dòng)源設(shè)備進(jìn)行發(fā)送異步指令,本發(fā)明實(shí)施例不作限定。當(dāng)通過甩動(dòng)源設(shè)備進(jìn)行輸入異步指令時(shí),源設(shè)備可以獲取甩動(dòng)操作的甩動(dòng)參數(shù),并將獲取到的甩動(dòng)參數(shù)與預(yù)設(shè)的甩動(dòng)參數(shù)是否匹配,若匹配,則將該甩動(dòng)操作視為發(fā)送異步指令的操作,否則將該甩動(dòng)操作視為無效操作。預(yù)設(shè)甩動(dòng)參數(shù)是為了防止誤操作。
需要說明的是,在獲取異步指令之前,源設(shè)備的Miracast模塊中的鏡像單元對(duì)呈現(xiàn)在屏幕中的畫面進(jìn)行錄像得到第一視頻流數(shù)據(jù),并將第一視頻流數(shù)據(jù)存放在屏幕錄像緩存區(qū)中;Miracast模塊中的抓取單元對(duì)從屏幕錄像緩存區(qū)中抓取第一視頻流數(shù)據(jù),并將第一視頻流數(shù)據(jù)發(fā)送至通信單元;通信單元基于WIFI直連協(xié)議將第一視頻流數(shù)據(jù)發(fā)送給目標(biāo)設(shè)備。
步驟S2,響應(yīng)異步指令,控制Miracast模塊停止從屏幕錄像緩存區(qū)中抓取第一視頻流數(shù)據(jù),并控制Miracast模塊從正在運(yùn)行的播放器所對(duì)應(yīng)的視頻緩存區(qū)中獲取第二視頻流數(shù)據(jù)。其中,第一視頻流數(shù)據(jù)為對(duì)呈現(xiàn)在屏幕中的畫面進(jìn)行錄像得到的數(shù)據(jù)。播放器在運(yùn)行時(shí),會(huì)在源設(shè)備的CPU的緩存器中占據(jù)一塊緩存區(qū),用來存儲(chǔ)數(shù)據(jù),該緩存區(qū)即為所述視頻緩存區(qū)。
在一個(gè)優(yōu)選的實(shí)施例中,控制Miracast模塊停止從屏幕錄像緩存區(qū)中抓取第一視頻流數(shù)據(jù),并控制Miracast模塊從正在運(yùn)行的播放器所對(duì)應(yīng)的視頻緩存區(qū)中獲取第二視頻流數(shù)據(jù)包括:將Miracast模塊的抓取地址由屏幕錄像緩存區(qū)的地址更改為正在運(yùn)行的播放器所對(duì)應(yīng)的視頻緩存區(qū)的地址。
步驟S3,通過基于WIFI Direct協(xié)議建立的通信通道將第二視頻流數(shù)據(jù)發(fā)送。
基于WIFI Direct協(xié)議建立通信通道為現(xiàn)有技術(shù),在此不再贅述,需要說明的是,源設(shè)備的通信模塊通過基于WIFI Direct協(xié)議建立的通信通道將所述第二視頻流數(shù)據(jù)發(fā)送至目標(biāo)設(shè)備。
本發(fā)明實(shí)施例的有益效果在于,因?yàn)椴捎昧嗽讷@取異步指令后,從正在運(yùn)行的播放器所對(duì)應(yīng)的視頻緩存區(qū)中獲取視頻流數(shù)據(jù),而不是從屏幕錄像緩存區(qū)中獲取視頻流數(shù)據(jù),所以克服了現(xiàn)有技術(shù)中在基于Miracast技術(shù)進(jìn)行傳屏的過程中,源設(shè)備與目標(biāo)設(shè)備的屏幕所顯示的畫面必須時(shí)時(shí)一致的技術(shù)問題,進(jìn)而達(dá)到能根據(jù)用戶的需求實(shí)現(xiàn)在需要一致的時(shí)候一致,在不需要一致的時(shí)候能夠保證屏幕顯示的畫面不一致但目標(biāo)設(shè)備仍舊能夠接收到源設(shè)備向其分享的視頻文件的技術(shù)效果,避免了現(xiàn)有技術(shù)傳屏?xí)r為了保護(hù)用戶隱私而操作繁瑣的問題。
圖3是本發(fā)明發(fā)送視頻流數(shù)據(jù)方法的第二實(shí)施例的流程圖。
如圖3所示,本實(shí)施方式以上述第一實(shí)施方式為基礎(chǔ),在步驟S3通過基于WIFI Direct協(xié)議建立的通信通道將第二視頻流數(shù)據(jù)發(fā)送的步驟之后,還包括步驟S4-S6:
步驟S4,獲取恢復(fù)同步指令。
本發(fā)明實(shí)施例中,用戶發(fā)送恢復(fù)同步指令的方式具有多樣性,例如,用戶可以通過在源設(shè)備上觸碰與上述異步指令不同的按鈕進(jìn)行發(fā)送恢復(fù)同步指令,也可以是用戶通過甩動(dòng)源設(shè)備進(jìn)行發(fā)送恢復(fù)同步指令,本發(fā)明實(shí)施例不作限定。當(dāng)通過甩動(dòng)源設(shè)備進(jìn)行輸入恢復(fù)同步指令時(shí),源設(shè)備可以獲取甩動(dòng)操作的甩動(dòng)參數(shù),并將獲取到的甩動(dòng)參數(shù)與預(yù)設(shè)的甩動(dòng)參數(shù)是否匹配,若匹配,則將該甩動(dòng)操作視為發(fā)送恢復(fù)同步指令的操作,否則將該甩動(dòng)操作視為無效操作。預(yù)設(shè)甩動(dòng)參數(shù)是為了防止誤操作。
步驟S5,響應(yīng)恢復(fù)同步指令,控制Miracast模塊停止從正在運(yùn)行的播放器所對(duì)應(yīng)的視頻緩存區(qū)中獲取第二視頻流數(shù)據(jù),并控制Miracast模塊恢復(fù)從屏幕錄像緩存區(qū)中抓取第一視頻流數(shù)據(jù)。
具體地,在源設(shè)備檢測(cè)到用戶發(fā)送的恢復(fù)同步指令之后,控制Miracast模塊的抓取單元停止從正在運(yùn)行的播放器所對(duì)應(yīng)的視頻緩存區(qū)中獲取第二視頻流數(shù)據(jù),并控制Miracast模塊的抓取單元恢復(fù)從屏幕錄像緩存區(qū)中抓取第一視頻流數(shù)據(jù)。其中,第一視頻流數(shù)據(jù)為對(duì)呈現(xiàn)在屏幕中的畫面進(jìn)行錄像得到的數(shù)據(jù)。在一個(gè)優(yōu)選的實(shí)施例中,控制Miracast模塊停止從正在運(yùn)行的播放器所對(duì)應(yīng)的視頻緩存區(qū)中獲取第二視頻流數(shù)據(jù),并控制Miracast模塊恢復(fù)從屏幕錄像緩存區(qū)中抓取第一視頻流數(shù)據(jù):將Miracast模塊中抓取單元的抓取地址由屏幕錄像緩存區(qū)的地址更改為正在運(yùn)行的播放器所對(duì)應(yīng)的視頻緩存區(qū)的地址。
步驟S6,通過基于WIFI Direct協(xié)議建立的通信通道將第一視頻流數(shù)據(jù)發(fā)送。
基于WIFI Direct協(xié)議建立通信通道為現(xiàn)有技術(shù),在此不再贅述,需要說明的是,源設(shè)備的通信模塊通過基于WIFI Direct協(xié)議建立的通信通道將所述第一視頻流數(shù)據(jù)發(fā)送至目標(biāo)設(shè)備。
本發(fā)明實(shí)施例的有益效果在于,因?yàn)椴捎昧嗽讷@取恢復(fù)同步指令,從從屏幕錄像緩存區(qū)中獲取視頻流數(shù)據(jù),而不是從正在運(yùn)行的播放器所對(duì)應(yīng)的視頻緩存區(qū)中獲取視頻流數(shù)據(jù),能夠便于用戶恢復(fù)Mriacast原來的狀態(tài)。
圖4是本發(fā)明發(fā)送視頻流數(shù)據(jù)方法的第三實(shí)施例的流程圖
如圖4所示,如果運(yùn)行的播放器的數(shù)量為多個(gè),則從正在運(yùn)行的播放器所對(duì)應(yīng)的視頻緩存區(qū)中獲取第二視頻流數(shù)據(jù)的步驟之前,還包括以下步驟S01和步驟S02:
步驟S01,比較多個(gè)播放器從前臺(tái)退出至后臺(tái)的時(shí)間;
步驟S02,選擇退出至后臺(tái)的時(shí)間最晚的播放器所對(duì)應(yīng)的視頻緩存區(qū)作為獲取第二視頻流數(shù)據(jù)的緩存區(qū)。
本發(fā)明實(shí)施例的有益效果在于,根據(jù)播放器從前臺(tái)退出至后臺(tái)的時(shí)間來判斷哪個(gè)播放器是用戶最近打開的播放器,從而能夠在后臺(tái)運(yùn)行多個(gè)播放器的時(shí)候,選擇用戶最近打開的播放器所對(duì)應(yīng)的緩存區(qū)作為Mriacast模塊抓取第二視頻流的緩存區(qū)。
本發(fā)明的實(shí)施方式還提供了一種接收視頻流數(shù)據(jù)的方法,包括:接收上述發(fā)送視頻流數(shù)據(jù)方法的任一項(xiàng)所提到的源設(shè)備所發(fā)送的第一視頻流數(shù)據(jù)和第二視頻流數(shù)據(jù)。具體的發(fā)送視頻流數(shù)據(jù)方法可以適用于支持Miracast的智能手機(jī)(如Android手機(jī)、Ios手機(jī))、平板電腦、掌上電腦、移動(dòng)互聯(lián)網(wǎng)設(shè)備MoobileInernetDevices以及智能電視、臺(tái)式電腦等設(shè)備。
圖5是本發(fā)明發(fā)送視頻流數(shù)據(jù)的源設(shè)備的第一實(shí)施例的模塊關(guān)系圖。
其中,圖5所示的源設(shè)備可以為支持Miracast的智能手機(jī)(如Android手機(jī)、Ios手機(jī))、平板電腦、掌上電腦、移動(dòng)互聯(lián)網(wǎng)設(shè)備MoobileInernetDevices以及智能電視、臺(tái)式電腦等設(shè)備。
如圖5所示,在本實(shí)施例中,發(fā)送視頻流數(shù)據(jù)的源設(shè)備包括:指令獲取模塊10、更改抓取模塊20和通信模塊70,還包括Miracast模塊30、緩存器(包括屏幕錄像緩存區(qū)40和視頻緩存區(qū)60)以及安裝在當(dāng)前源設(shè)備上的播放器50(軟件)。其中,Miracast模塊30、緩存器和播放器50為現(xiàn)有技術(shù),其實(shí)現(xiàn)方式現(xiàn)有技術(shù)中均有記載,且不為本發(fā)明的發(fā)明點(diǎn),在此不再贅述。
指令獲取模塊10,用于獲取異步指令,并將該異步指令發(fā)送給更改抓取模塊20。具體地,指令獲取模塊10獲取的是用戶發(fā)送的異步指令。本發(fā)明實(shí)施例中,用戶發(fā)送異步指令的方式具有多樣性,例如,用戶可以通過在源設(shè)備上觸碰按鈕進(jìn)行發(fā)送異步指令,也可以是用戶通過甩動(dòng)源設(shè)備進(jìn)行發(fā)送異步指令,本發(fā)明實(shí)施例不作限定。當(dāng)通過甩動(dòng)源設(shè)備進(jìn)行輸入異步指令時(shí),源設(shè)備可以獲取甩動(dòng)操作的甩動(dòng)參數(shù),并將獲取到的甩動(dòng)參數(shù)與預(yù)設(shè)的甩動(dòng)參數(shù)是否匹配,若匹配,則將該甩動(dòng)操作視為發(fā)送異步指令的操作,否則將該甩動(dòng)操作視為無效操作。預(yù)設(shè)甩動(dòng)參數(shù)是為了防止誤操作。
需要說明的是,指令獲取模塊10在獲取異步指令之前,源設(shè)備的Miracast模塊30中的鏡像單元對(duì)呈現(xiàn)在屏幕中的畫面進(jìn)行錄像得到第一視頻流數(shù)據(jù),并將第一視頻流數(shù)據(jù)存放在屏幕錄像緩存區(qū)40中;Miracast模塊30中的抓取單元對(duì)從屏幕錄像緩存區(qū)40中抓取第一視頻流數(shù)據(jù),并將第一視頻流數(shù)據(jù)發(fā)送至通信單元;通信單元基于WIFI直連協(xié)議將第一視頻流數(shù)據(jù)發(fā)送給目標(biāo)設(shè)備。
更改抓取模塊20接收到異步指令后,控制Miracast模塊30停止從屏幕錄像緩存區(qū)40中抓取第一視頻流數(shù)據(jù),并控制Miracast模塊30從正在運(yùn)行的播放器50所對(duì)應(yīng)的視頻緩存區(qū)60中獲取第二視頻流數(shù)據(jù)。播放器50在運(yùn)行時(shí),會(huì)在源設(shè)備的CPU的緩存器中占據(jù)一塊緩存區(qū),用來存儲(chǔ)數(shù)據(jù),該緩存區(qū)即為所述視頻緩存區(qū)60。
在一個(gè)優(yōu)選的實(shí)施例中,更改抓取模塊20包括第一地址更改單元,用于將Miracast模塊30的抓取地址由屏幕錄像緩存區(qū)40的地址更改為正在運(yùn)行的播放器50所對(duì)應(yīng)的視頻緩存區(qū)60的地址,從而使得源設(shè)備的Miracast模塊30的抓取單元停止從屏幕錄像緩存區(qū)40中抓取第一視頻流數(shù)據(jù),并從正在運(yùn)行的播放器50所對(duì)應(yīng)的視頻緩存區(qū)60中獲取第二視頻流數(shù)據(jù)。
通信模塊70,用于通過基于WIFI Direct協(xié)議建立的通信通道將所述第二視頻流數(shù)據(jù)發(fā)送?;赪IFI Direct協(xié)議建立通信通道為現(xiàn)有技術(shù),在此不再贅述,需要說明的是,源設(shè)備的通信模塊70通過基于WIFI Direct協(xié)議建立的通信通道將所述第二視頻流數(shù)據(jù)發(fā)送至目標(biāo)設(shè)備。
本發(fā)明實(shí)施例的有益效果在于,
圖6是本發(fā)明發(fā)送視頻流數(shù)據(jù)的源設(shè)備的第二實(shí)施例的模塊關(guān)系圖。
如圖6所示,本實(shí)施方式以上述發(fā)送視頻流數(shù)據(jù)的源設(shè)備的第一實(shí)施方式為基礎(chǔ)。
指令獲取模塊10,還用于獲取恢復(fù)同步指令。具體的,用于本發(fā)明實(shí)施例中,用戶發(fā)送恢復(fù)同步指令的方式具有多樣性,例如,用戶可以通過在源設(shè)備上觸碰與上述異步指令不同的按鈕進(jìn)行發(fā)送恢復(fù)同步指令,也可以是用戶通過甩動(dòng)源設(shè)備進(jìn)行發(fā)送恢復(fù)同步指令,本發(fā)明實(shí)施例不作限定。當(dāng)通過甩動(dòng)源設(shè)備進(jìn)行輸入恢復(fù)同步指令時(shí),源設(shè)備可以獲取甩動(dòng)操作的甩動(dòng)參數(shù),并將獲取到的甩動(dòng)參數(shù)與預(yù)設(shè)的甩動(dòng)參數(shù)是否匹配,若匹配,則將該甩動(dòng)操作視為發(fā)送恢復(fù)同步指令的操作,否則將該甩動(dòng)操作視為無效操作。預(yù)設(shè)甩動(dòng)參數(shù)是為了防止誤操作。
更改抓取模塊20,還用于在接收到恢復(fù)同步指令之后,控制Miracast模塊30停止從正在運(yùn)行的播放器50所對(duì)應(yīng)的視頻緩存區(qū)60中獲取第二視頻流數(shù)據(jù),并控制Miracast模塊30恢復(fù)從屏幕錄像緩存區(qū)40中抓取第一視頻流數(shù)據(jù)。具體地,在源設(shè)備的更改抓取模塊20接收到用戶發(fā)送的恢復(fù)同步指令之后,更改抓取模塊20控制源設(shè)備的Miracast模塊30的抓取單元停止從正在運(yùn)行的播放器50所對(duì)應(yīng)的視頻緩存區(qū)60中獲取第二視頻流數(shù)據(jù),并控制其恢復(fù)從屏幕錄像緩存區(qū)40中抓取第一視頻流數(shù)據(jù)。其中,第一視頻流數(shù)據(jù)為對(duì)呈現(xiàn)在屏幕中的畫面進(jìn)行錄像得到的數(shù)據(jù)。
在一個(gè)優(yōu)選的實(shí)施例中,更改抓取模塊20包括第二地址更改單元,用于將Miracast模塊30的抓取地址由正在運(yùn)行的播放器50所對(duì)應(yīng)的視頻緩存區(qū)60的地址更改為屏幕錄像緩存區(qū)40的地址,從而使得源設(shè)備的Miracast模塊30的抓取單元停止從正在運(yùn)行的播放器50所對(duì)應(yīng)的視頻緩存區(qū)60中獲取第二視頻流數(shù)據(jù),并恢復(fù)從屏幕錄像緩存區(qū)40中抓取第一視頻流數(shù)據(jù)。
通信模塊70,還用于通過基WIFI Direct協(xié)議建立的通信通道將第一視頻流數(shù)據(jù)發(fā)送。基于WIFI Direct協(xié)議建立通信通道為現(xiàn)有技術(shù),在此不再贅述,需要說明的是,源設(shè)備的通信模塊70通過基于WIFI Direct協(xié)議建立的通信通道將所述第一視頻流數(shù)據(jù)發(fā)送至目標(biāo)設(shè)備。
本發(fā)明實(shí)施例的有益效果在于,因?yàn)椴捎昧嗽讷@取恢復(fù)同步指令,從從屏幕錄像緩存區(qū)中獲取視頻流數(shù)據(jù),而不是從正在運(yùn)行的播放器所對(duì)應(yīng)的視頻緩存區(qū)中獲取視頻流數(shù)據(jù),能夠便于用戶恢復(fù)Mriacast原來的狀態(tài)。
圖7是本發(fā)明發(fā)送視頻流數(shù)據(jù)的源設(shè)備的第三實(shí)施例的模塊關(guān)系圖。
本實(shí)施方式以上述發(fā)送視頻流數(shù)據(jù)的源設(shè)備的任一項(xiàng)實(shí)施方式為基礎(chǔ)。
如圖7所示,若正在運(yùn)行的播放器50的數(shù)量為多個(gè),則發(fā)送視頻流數(shù)據(jù)的源設(shè)備還包括比較模塊和選擇模塊;
比較模塊,用于比較多個(gè)播放器50從前臺(tái)退出至后臺(tái)的時(shí)間。選擇模塊,用于選擇退出至后臺(tái)的時(shí)間最晚的播放器50所對(duì)應(yīng)的視頻緩存區(qū)60作為獲取第二視頻流數(shù)據(jù)的緩存區(qū),并將選擇結(jié)果發(fā)送至更改抓取模塊20。
本發(fā)明實(shí)施例的有益效果在于,根據(jù)播放器從前臺(tái)退出至后臺(tái)的時(shí)間來判斷哪個(gè)播放器是用戶最近打開的播放器,從而能夠在后臺(tái)運(yùn)行多個(gè)播放器的時(shí)候,選擇用戶最近打開的播放器所對(duì)應(yīng)的緩存區(qū)作為Mriacast模塊抓取第二視頻流的緩存區(qū)。
本發(fā)明實(shí)施例還同時(shí)提供了一種電子設(shè)備,包括:至少一個(gè)第一處理器;以及,
與所述至少一個(gè)第一處理器通信連接的第一存儲(chǔ)器;其中,
所述第一存儲(chǔ)器存儲(chǔ)有可被所述至少一個(gè)第一處理器執(zhí)行的指令,所述指令被所述至少一個(gè)第一處理器執(zhí)行,以使所述至少一個(gè)第一處理器能夠?qū)崿F(xiàn)如上所述的發(fā)送視頻流數(shù)據(jù)的方法。
此外,本發(fā)明實(shí)施例提供了一種非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)計(jì)算機(jī)指令,計(jì)算機(jī)指令用于使計(jì)算機(jī)執(zhí)行上述任一個(gè)實(shí)施例的方法。本發(fā)明實(shí)施例還提供了一種計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)指令,所述計(jì)算機(jī)指令用于使計(jì)算機(jī)執(zhí)行上述任一個(gè)實(shí)施例的方法。
本發(fā)明的實(shí)施方式還提供了一種接收視頻流數(shù)據(jù)的目標(biāo)設(shè)備,用于接收上述發(fā)送視頻流數(shù)據(jù)的源設(shè)備任一項(xiàng)所發(fā)送的第一視頻流數(shù)據(jù)和第二視頻流數(shù)據(jù)。具體地,目標(biāo)設(shè)備可以為支持Miracast的智能手機(jī)(如Android手機(jī)、Ios手機(jī))、平板電腦、掌上電腦、移動(dòng)互聯(lián)網(wǎng)設(shè)備MoobileInernetDevices以及智能電視、臺(tái)式電腦等設(shè)備。
本發(fā)明的實(shí)施方式還提供了一種分享視頻流數(shù)據(jù)的系統(tǒng),包括上述任一項(xiàng)實(shí)施例中的發(fā)送視頻流數(shù)據(jù)的源設(shè)備和接收視頻流數(shù)據(jù)的目標(biāo)設(shè)備。
應(yīng)當(dāng)理解的是,本發(fā)明的上述具體實(shí)施方式僅僅用于示例性說明或解釋本發(fā)明的原理,而不構(gòu)成對(duì)本發(fā)明的限制。因此,在不偏離本發(fā)明的精神和范圍的情況下所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。此外,本發(fā)明所附權(quán)利要求旨在涵蓋落入所附權(quán)利要求范圍和邊界、或者這種范圍和邊界的等同形式內(nèi)的全部變化和修改例。