本發(fā)明涉及投屏數(shù)據(jù)處理,具體涉及一種android系統(tǒng)中多應(yīng)用共享投屏數(shù)據(jù)的方法。
背景技術(shù):
1、隨著移動(dòng)設(shè)備的普及和無(wú)線網(wǎng)絡(luò)技術(shù)的發(fā)展,投屏技術(shù)被廣泛應(yīng)用于家庭娛樂(lè)、教育、企業(yè)會(huì)議等領(lǐng)域。在android系統(tǒng)中,很多應(yīng)用程序可能都需要使用投屏相關(guān)技術(shù),如airplay、google?cast和miracast等:
2、1.airplay是蘋(píng)果開(kāi)發(fā)的一種無(wú)線技術(shù),可以通過(guò)wi-fi將ios設(shè)備上的圖片、音頻、視頻等傳輸?shù)街С謅irplay的設(shè)備上,如apple?tv、智能電視等。airplay具有使用方便、穩(wěn)定性好、兼容性強(qiáng)等優(yōu)點(diǎn),但只能用于蘋(píng)果設(shè)備,且需要支持airplay的設(shè)備才能接收投屏數(shù)據(jù)。
3、2.google?cast是谷歌開(kāi)發(fā)的一種無(wú)線投屏技術(shù),可以將android設(shè)備或chrome瀏覽器上的內(nèi)容傳輸?shù)街С謌oogle?cast的設(shè)備上,如智能電視、音響等。google?cast具有兼容性強(qiáng)、傳輸速度快、穩(wěn)定性好等優(yōu)點(diǎn),但需要設(shè)備和應(yīng)用程序支持google?cast才能使用。
4、3.miracast是wi-fi聯(lián)盟制定的一種無(wú)線顯示標(biāo)準(zhǔn)協(xié)議,可以將支持miracast的設(shè)備上的內(nèi)容傳輸?shù)狡渌С謒iracast的設(shè)備上,如電視、投影儀等。miracast具有無(wú)需安裝軟件、無(wú)需連接網(wǎng)絡(luò)、傳輸速度快等優(yōu)點(diǎn),但兼容性較差,不同設(shè)備之間可能存在連接問(wèn)題。
5、但是,現(xiàn)有的android系統(tǒng)投屏技術(shù)通常是針對(duì)單個(gè)應(yīng)用程序的,每個(gè)需要使用投屏相關(guān)技術(shù)的應(yīng)用都需要單獨(dú)實(shí)現(xiàn)相關(guān)邏輯,無(wú)法多應(yīng)用共享投屏數(shù)據(jù)。
6、基于此,本發(fā)明設(shè)計(jì)了一種android系統(tǒng)中多應(yīng)用共享投屏數(shù)據(jù)的方法以解決上述問(wèn)題。
技術(shù)實(shí)現(xiàn)思路
1、針對(duì)現(xiàn)有技術(shù)所存在的上述缺點(diǎn),本發(fā)明提供了一種android系統(tǒng)中多應(yīng)用共享投屏數(shù)據(jù)的方法。
2、為實(shí)現(xiàn)以上目的,本發(fā)明通過(guò)以下技術(shù)方案予以實(shí)現(xiàn):
3、一種android系統(tǒng)中多應(yīng)用共享投屏數(shù)據(jù)的方法,包括以下步驟:
4、步驟一,在投屏接收端的android系統(tǒng)底層服務(wù)中配置適配多種投屏技術(shù)的參數(shù);
5、步驟二,將投屏接收端的多種投屏技術(shù)投屏服務(wù)的共同特征封裝統(tǒng)一封裝為aidlipc接口;
6、步驟三,投屏發(fā)送端向投屏接收端的aidl?ipc接口發(fā)送投屏數(shù)據(jù);
7、步驟四,投屏接收端的aidl?ipc接口的服務(wù)端接收來(lái)自投屏發(fā)送端應(yīng)用程序傳遞的surface?graphicbufferproducer(圖形數(shù)據(jù));
8、步驟五,將多種投屏技術(shù)接收到的投屏數(shù)據(jù)轉(zhuǎn)換成投屏接收端應(yīng)用程序surface(圖形顯示器)可以識(shí)別的圖形數(shù)據(jù);
9、步驟六,通過(guò)graphicbuffer(圖形數(shù)據(jù)緩沖區(qū))的跨進(jìn)程通信機(jī)制將圖形數(shù)據(jù)傳遞給對(duì)應(yīng)的投屏接收端應(yīng)用程序。
10、更進(jìn)一步的,所述投屏接收端android系統(tǒng)底層服務(wù)中配置的多種投屏技術(shù)的參數(shù)包括系統(tǒng)版本、硬件要求、發(fā)現(xiàn)協(xié)議規(guī)則、數(shù)據(jù)協(xié)商流程。
11、更進(jìn)一步的,所述多種投屏服務(wù)的共同特征封裝統(tǒng)一的aidl?ipc接口的設(shè)置內(nèi)容包括:服務(wù)開(kāi)啟/關(guān)閉、設(shè)置服務(wù)名和設(shè)置表面圖形緩沖生成器。
12、更進(jìn)一步的,投屏接收端android系統(tǒng)底層服務(wù)中啟動(dòng)一個(gè)獨(dú)立的投屏服務(wù)進(jìn)程,投屏接收端的aidl?ipc?service服務(wù)并注冊(cè)到投屏接收端android系統(tǒng)的servicemanager(服務(wù)管理器)中。
13、更進(jìn)一步的,當(dāng)投屏接收端接收到多種投屏技術(shù)有效的投屏數(shù)據(jù)時(shí),根據(jù)投屏數(shù)據(jù)特征及規(guī)則利用相關(guān)算法轉(zhuǎn)換成可以解碼的可讀數(shù)據(jù)。
14、更進(jìn)一步的,通過(guò)調(diào)用投屏接收端android系統(tǒng)釋放解碼的可讀數(shù)據(jù)的緩沖區(qū)數(shù)據(jù),并告知android系統(tǒng)需要將所述緩沖區(qū)數(shù)據(jù)通過(guò)mediacodec(媒體解碼器)渲染到投屏接收端對(duì)應(yīng)應(yīng)用程序傳遞的surface(繪圖表面)上,mediacodec(媒體解碼器)依靠?jī)?nèi)部的softwarerenderer(軟件渲染器)把所述緩沖區(qū)數(shù)據(jù)通過(guò)queuebuffer函數(shù)解析到投屏接收端應(yīng)用程序傳遞的surface(繪圖表面)對(duì)應(yīng)的mgraphicbufferproducer上,mgraphicbufferproducer交付給投屏接收端android系統(tǒng)的surfaceflinger(顯示引擎)上,surfaceflinger(顯示引擎)顯示到應(yīng)用程序的surface(繪圖表面)的對(duì)應(yīng)的surfaceview/textureview(視圖)上。
15、本發(fā)明具有以下技術(shù)效果:
16、本發(fā)明實(shí)現(xiàn)了,通過(guò)把a(bǔ)irplay、google?cast和miracast等投屏技術(shù)封裝成統(tǒng)一的android底層服務(wù),并提供統(tǒng)一的aidl?ipc接口供不同的應(yīng)用程序使用。多個(gè)應(yīng)用程序使用統(tǒng)一的接口就可簡(jiǎn)單的實(shí)現(xiàn)獲取投屏數(shù)據(jù),這種方法提高了投屏的用戶體驗(yàn)和使用效率,并降低了投屏的開(kāi)發(fā)成本。
1.一種android系統(tǒng)中多應(yīng)用共享投屏數(shù)據(jù)的方法,其特征在于:包括以下步驟:
2.根據(jù)權(quán)利要求1所述的android系統(tǒng)中多應(yīng)用共享投屏數(shù)據(jù)的方法,其特征在于,所述投屏接收端android系統(tǒng)底層服務(wù)中配置的多種投屏技術(shù)的參數(shù)包括系統(tǒng)版本、硬件要求、發(fā)現(xiàn)協(xié)議規(guī)則、數(shù)據(jù)協(xié)商流程。
3.根據(jù)權(quán)利要求2所述的android系統(tǒng)中多應(yīng)用共享投屏數(shù)據(jù)的方法,其特征在于,所述多種投屏服務(wù)的共同特征封裝統(tǒng)一的aidlipc接口的設(shè)置內(nèi)容包括:服務(wù)開(kāi)啟/關(guān)閉、設(shè)置服務(wù)名和設(shè)置表面圖形緩沖生成器。
4.根據(jù)權(quán)利要求3所述的android系統(tǒng)中多應(yīng)用共享投屏數(shù)據(jù)的方法,其特征在于,投屏接收端android系統(tǒng)底層服務(wù)中啟動(dòng)一個(gè)獨(dú)立的投屏服務(wù)進(jìn)程,投屏接收端的aidl?ipcservice服務(wù)并注冊(cè)到投屏接收端android系統(tǒng)的servicemanager(服務(wù)管理器)中。
5.根據(jù)權(quán)利要求4所述的android系統(tǒng)中多應(yīng)用共享投屏數(shù)據(jù)的方法,其特征在于,當(dāng)投屏接收端接收到多種投屏技術(shù)有效的投屏數(shù)據(jù)時(shí),根據(jù)投屏數(shù)據(jù)特征及規(guī)則利用相關(guān)算法轉(zhuǎn)換成可以解碼的可讀數(shù)據(jù)。
6.根據(jù)權(quán)利要求5所述的android系統(tǒng)中多應(yīng)用共享投屏數(shù)據(jù)的方法,其特征在于,通過(guò)調(diào)用投屏接收端android系統(tǒng)釋放解碼的可讀數(shù)據(jù)的緩沖區(qū)數(shù)據(jù),并告知android系統(tǒng)需要將所述緩沖區(qū)數(shù)據(jù)通過(guò)mediacodec(媒體解碼器)渲染到投屏接收端對(duì)應(yīng)應(yīng)用程序傳遞的surface(繪圖表面)上,mediacodec(媒體解碼器)依靠?jī)?nèi)部的softwarerenderer(軟件渲染器)把所述緩沖區(qū)數(shù)據(jù)通過(guò)queuebuffer函數(shù)解析到投屏接收端應(yīng)用程序傳遞的surface(繪圖表面)對(duì)應(yīng)的mgraphicbufferproducer上,mgraphicbufferproducer交付給投屏接收端android系統(tǒng)的surfaceflinger(顯示引擎)上,surfaceflinger(顯示引擎)顯示到應(yīng)用程序的surface(繪圖表面)的對(duì)應(yīng)的surfaceview/textureview(視圖)上。