亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種Android系統(tǒng)服務(wù)端、遠(yuǎn)程桌面音頻重定向方法及系統(tǒng)與流程

文檔序號(hào):11710043閱讀:913來源:國知局
一種Android系統(tǒng)服務(wù)端、遠(yuǎn)程桌面音頻重定向方法及系統(tǒng)與流程

本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種android系統(tǒng)服務(wù)端、遠(yuǎn)程桌面音頻重定向方法及系統(tǒng)。



背景技術(shù):

傳統(tǒng)的遠(yuǎn)程桌面技術(shù)主要是基于windows、linux、macos等pc操作系統(tǒng)。然而,隨著智能移動(dòng)設(shè)備的大規(guī)模應(yīng)用和企業(yè)移動(dòng)辦公的普及,基于移動(dòng)操作系統(tǒng)如android系統(tǒng)的遠(yuǎn)程桌面有了越來越多的市場(chǎng)需求。相對(duì)于傳統(tǒng)的遠(yuǎn)程桌面,基于android系統(tǒng)的遠(yuǎn)程桌面給用戶交付的是整個(gè)android桌面,并且具有音頻、攝像頭等硬件設(shè)備的重定向功能。

在android系統(tǒng)中,音頻是一項(xiàng)非常重要的基礎(chǔ)功能,所以在android遠(yuǎn)程桌面環(huán)境中,實(shí)現(xiàn)音頻重定向的功能對(duì)提高遠(yuǎn)程桌面產(chǎn)品的用戶體驗(yàn)至關(guān)重要,其中音頻重定向又可以細(xì)分為:音頻播放重定向和麥克風(fēng)錄音重定向。音頻播放重定向是指將遠(yuǎn)程桌面服務(wù)端android系統(tǒng)中音頻回放時(shí)產(chǎn)生的音頻數(shù)據(jù)通過遠(yuǎn)程桌面服務(wù)端軟件發(fā)送到遠(yuǎn)程桌面客戶端上進(jìn)行播放;麥克風(fēng)錄音重定向則是將遠(yuǎn)程桌面客戶端麥克風(fēng)設(shè)備上采集到的錄音音頻數(shù)據(jù)通過遠(yuǎn)程桌面客戶端軟件發(fā)送到遠(yuǎn)程桌面服務(wù)端中,然后供上層的錄音應(yīng)用程序所使用。

現(xiàn)有比較成熟的遠(yuǎn)程桌面技術(shù)方案,例如microsoft的rdp,citrix的ica和teamviewer,這些技術(shù)方案中遠(yuǎn)程桌面服務(wù)端使用的基本都是windows、linux、macos等pc操作系統(tǒng),并且它們的音頻重定向的技術(shù)主要通過調(diào)用遠(yuǎn)程桌面服務(wù)端操作系統(tǒng)現(xiàn)有所提供的api接口實(shí)現(xiàn)。

windows系統(tǒng)中基于rdp協(xié)議的音頻重定向方案:當(dāng)rdp客戶端通過網(wǎng)絡(luò)連接到遠(yuǎn)程主機(jī)上之后,遠(yuǎn)程服務(wù)端主機(jī)上的音頻驅(qū)動(dòng)程序就會(huì)被切換成一個(gè)microsoftrdp音頻驅(qū)動(dòng)程序(microsoftrdpaudiodriver)。對(duì)于音頻播放重定向,這個(gè)驅(qū)動(dòng)的工作就是負(fù)責(zé)接管遠(yuǎn)程計(jì)算機(jī)上正在播放的音頻,把它壓縮之后通過網(wǎng)絡(luò)傳遞到遠(yuǎn)程客戶端,然后rdp客戶端把這個(gè)音頻網(wǎng)絡(luò)流發(fā)送到本地聲卡上輸出;對(duì)于麥克風(fēng)錄音重定向,這個(gè)驅(qū)動(dòng)的工作就是截獲到麥克風(fēng)設(shè)備所需要采集音頻的相關(guān)參數(shù)信息通過網(wǎng)絡(luò)發(fā)送給rdp客戶端,然后rdp客戶端將客戶端本地麥克風(fēng)設(shè)備上采集到的指定格式的錄音數(shù)據(jù)通過網(wǎng)絡(luò)發(fā)送到rdp服務(wù)端,最后rdp服務(wù)端將收到的這些數(shù)據(jù)傳入到microsoftrdp音頻驅(qū)動(dòng)程序中,提供給上層獲取錄音數(shù)據(jù)的應(yīng)用程序使用。但是,該方案適用于windows操作系統(tǒng),不適用于android操作系統(tǒng),且音頻播放數(shù)據(jù)的截取和錄音數(shù)據(jù)的導(dǎo)入完全不同。此外,windows系統(tǒng)中遠(yuǎn)程桌面技術(shù)中所使用rdp協(xié)議是閉源的,其他人無法借鑒rdp協(xié)議中有關(guān)音頻重定向的相關(guān)實(shí)現(xiàn)。

ubuntu系統(tǒng)基于pulseaudio系統(tǒng)服務(wù)的音頻重定向方案:對(duì)于音頻播放重定向,當(dāng)服務(wù)端有應(yīng)用程序播放音樂時(shí),服務(wù)端遠(yuǎn)程桌面應(yīng)用程序就將從pulseaudio系統(tǒng)服務(wù)中獲取到當(dāng)前系統(tǒng)混音好的音頻數(shù)據(jù),然后通過網(wǎng)絡(luò)發(fā)送到遠(yuǎn)程桌面客戶端,最后在遠(yuǎn)程桌面客戶端的聲卡設(shè)備上進(jìn)行播放。對(duì)于麥克風(fēng)錄音重定向,服務(wù)端遠(yuǎn)程桌面應(yīng)用程序監(jiān)聽系統(tǒng)服務(wù)中的錄音事件消息,然后在監(jiān)聽到啟動(dòng)錄音事件消息時(shí),從pulseaudio系統(tǒng)服務(wù)中獲取錄音的相關(guān)參數(shù)信息并通過網(wǎng)絡(luò)發(fā)送到遠(yuǎn)程桌面客戶端,最后接收來自遠(yuǎn)程客戶端本地麥克風(fēng)設(shè)備所采集的錄音音頻數(shù)據(jù),并將這些數(shù)據(jù)寫入到pulseaudio系統(tǒng)服務(wù)的網(wǎng)絡(luò)錄音接口中,供上層的應(yīng)用程序獲取錄音音頻數(shù)據(jù)。但是,該方案適用于ubuntu操作系統(tǒng),不適用于android操作系統(tǒng),雖然這兩個(gè)操作系統(tǒng)底層都是基于linux內(nèi)核,但是它們所使用的音頻框架并不相同,ubuntu系統(tǒng)所使用的pulseaudio,而android系統(tǒng)使用的audioflinger,因此,這兩種系統(tǒng)的音頻重定向方案肯定不同。

綜上,上述方案在基于android系統(tǒng)的遠(yuǎn)程桌面音頻重定向場(chǎng)景中并不適用,主要是因?yàn)閍ndroid系統(tǒng)中并沒有提供截取系統(tǒng)音頻播放數(shù)據(jù)和注入錄音采集音頻數(shù)據(jù)的系統(tǒng)api接口提供給上層應(yīng)用程序調(diào)用。



技術(shù)實(shí)現(xiàn)要素:

在基于android系統(tǒng)的遠(yuǎn)程桌面環(huán)境中,為解決服務(wù)端的音頻播放的數(shù)據(jù)重定向到客戶端進(jìn)行播放和客戶端麥克風(fēng)設(shè)備采集的錄音數(shù)據(jù)重定向到服務(wù)端使用的音頻重定向問題,本發(fā)明提供了一種android系統(tǒng)服務(wù)端、遠(yuǎn)程桌面音頻重定向方法及系統(tǒng),實(shí)現(xiàn)了音頻播放重定向和麥克風(fēng)錄音重定向兩種功能,滿足遠(yuǎn)程桌面環(huán)境下的音頻需求。

本發(fā)明第一方面提供一種android系統(tǒng)服務(wù)端,包括:應(yīng)用層、系統(tǒng)框架層以及硬件抽象層,其中:

所述的應(yīng)用層包括音樂播放應(yīng)用模塊與錄音應(yīng)用模塊,其中,所述的音樂播放應(yīng)用模塊用于音樂的播放,所述的錄音應(yīng)用模塊用于音頻的錄制;

所述的系統(tǒng)框架層包括audiofinger進(jìn)程和遠(yuǎn)程桌面服務(wù)端,其中,所示的audiofinger進(jìn)程用于對(duì)音樂文件進(jìn)行解碼混音處理,并將處理好的音頻播放數(shù)據(jù)傳送至硬件抽象層的音頻硬件抽象層模塊,或從硬件抽象層的音頻硬件抽象層模塊中獲取麥克風(fēng)采集到的音頻數(shù)據(jù),并向上傳送到應(yīng)用層的錄音應(yīng)用中;所述的遠(yuǎn)程桌面服務(wù)端用于將音頻播放數(shù)據(jù)傳送至遠(yuǎn)程桌面客戶端、接收遠(yuǎn)程桌面客戶端麥克風(fēng)設(shè)備采集的錄音數(shù)據(jù)以及對(duì)錄音控制消息傳送至遠(yuǎn)程桌面客戶端;

所述的硬件抽象層包括音頻硬件抽象層模塊,所述的音頻硬件抽象層模塊用于對(duì)音頻播放數(shù)據(jù)、錄音采集數(shù)據(jù)、錄音控制消息進(jìn)行處理,并通過匿名共享內(nèi)存的方式與系統(tǒng)框架層的遠(yuǎn)程桌面服務(wù)端進(jìn)行進(jìn)程間通信。

所述的audiofinger進(jìn)程包括:

系統(tǒng)音頻播放組件,用于對(duì)音樂文件進(jìn)行解碼混音處理,并將處理好的音頻播放數(shù)據(jù)傳送至硬件抽象層的音頻硬件抽象層模塊;

系統(tǒng)錄音采集組件,用于從硬件抽象層的音頻硬件抽象層模塊中獲取麥克風(fēng)采集到的音頻數(shù)據(jù),并向上傳送到應(yīng)用層的錄音應(yīng)用中。

所述的音頻硬件抽象層模塊包括:

音頻播放數(shù)據(jù)截取模塊,用于從系統(tǒng)硬件抽象層中寫入聲卡驅(qū)動(dòng)的函數(shù)接口截取到音頻播放數(shù)據(jù),并將該音頻播放數(shù)據(jù)經(jīng)第一匿名共享內(nèi)存?zhèn)魉椭吝h(yuǎn)程桌面服務(wù)端;

第一匿名共享內(nèi)存,是音頻播放數(shù)據(jù)截取模塊與遠(yuǎn)程桌面服務(wù)端中的音頻播放重定向代理模塊共享的內(nèi)存,用于存儲(chǔ)音頻播放數(shù)據(jù);

錄音控制消息捕獲模塊,用于捕獲系統(tǒng)硬件抽象層中的錄音控制消息,并將錄音控制消息經(jīng)第二匿名共享內(nèi)存?zhèn)鬟f至遠(yuǎn)程桌面服務(wù)端;

第二匿名共享內(nèi)存,是錄音控制消息捕獲模塊與遠(yuǎn)程桌面服務(wù)端中的錄音控制消息代理模塊共享的內(nèi)存,用于存儲(chǔ)錄音控制消息;

錄音采集數(shù)據(jù)導(dǎo)入模塊,用于將遠(yuǎn)程桌面服務(wù)端接收的錄音采集數(shù)據(jù)經(jīng)第三匿名共享內(nèi)存導(dǎo)入至系統(tǒng)硬件抽象層的錄音數(shù)據(jù)聲卡驅(qū)動(dòng)讀取函數(shù)接口中;

第三匿名共享內(nèi)存,是錄音數(shù)據(jù)導(dǎo)入模塊與遠(yuǎn)程桌面服務(wù)端中的錄音重定向代理模塊共享的內(nèi)存,用于存儲(chǔ)錄音數(shù)據(jù)。

所述的遠(yuǎn)程桌面服務(wù)端包括:

第一通信模塊,用于遠(yuǎn)程桌面服務(wù)端與遠(yuǎn)程桌面客戶端之間的網(wǎng)絡(luò)通信;

音頻播放重定向代理模塊,用于將遠(yuǎn)程桌面服務(wù)端解碼的音頻播放數(shù)據(jù)傳送至遠(yuǎn)程桌面客戶端;

錄音控制消息代理模塊,用于將錄音控制消息傳送至遠(yuǎn)程桌面客戶端;

錄音重定向代理模塊,用于接收遠(yuǎn)程桌面客戶端麥克風(fēng)設(shè)備采集的錄音數(shù)據(jù)。

本發(fā)明第二方面提供了一種基于android系統(tǒng)遠(yuǎn)程桌面的音頻重定向系統(tǒng),包括:本發(fā)明第一方面提供的android系統(tǒng)服務(wù)端和遠(yuǎn)程桌面客戶端,其中,所述的遠(yuǎn)程桌面客戶端包括:

第二通信模塊,用于遠(yuǎn)程桌面客戶端與遠(yuǎn)程桌面服務(wù)端之間的網(wǎng)絡(luò)通信;

音頻播放重定向處理模塊,用于將遠(yuǎn)程桌面服務(wù)端發(fā)送的音頻播放數(shù)據(jù)于遠(yuǎn)程桌面客戶端本地的聲卡上播放;

錄音控制消息處理模塊,用于解析從遠(yuǎn)程桌面服務(wù)端發(fā)送的錄音控制消息,并控制錄音重定向處理模塊是否發(fā)送麥克風(fēng)設(shè)備采集的錄音數(shù)據(jù);

錄音重定向處理模塊,用于根據(jù)錄音控制消息處理模塊發(fā)送的麥克風(fēng)錄音采集參數(shù)來采集錄音數(shù)據(jù),并將錄音數(shù)據(jù)發(fā)送到遠(yuǎn)程桌面服務(wù)端。

所述的錄音控制消息包括:錄音啟動(dòng)消息、錄音暫停消息以及錄音采集相關(guān)參數(shù)消息。

所述的錄音采集相關(guān)參數(shù)消息包括:錄音采集所需的采樣率、采樣通道數(shù)以及采樣深度參數(shù)信息。

本發(fā)明第三方面提供了一種基于android系統(tǒng)遠(yuǎn)程桌面的音頻重定向方法,具體包括:

音頻播放重定向,音樂文件經(jīng)audioflinger解碼混音處理得到預(yù)處理音頻數(shù)據(jù),將預(yù)處理音頻數(shù)據(jù)傳送至音頻硬件抽象層模塊進(jìn)行處理,得到音頻播放數(shù)據(jù),并將該音頻播放數(shù)據(jù)傳送至遠(yuǎn)程桌面服務(wù)端進(jìn)行處理,遠(yuǎn)程桌面服務(wù)端將處理后的音頻播放數(shù)據(jù)傳送至遠(yuǎn)程桌面客戶端,進(jìn)行音頻播放,完成音頻播放重定向;

錄音重定向,錄音請(qǐng)求經(jīng)audioflinger進(jìn)程處理得到預(yù)處理錄音請(qǐng)求,將預(yù)處理錄音請(qǐng)求傳送至音頻硬件抽象層模塊進(jìn)行處理,得到錄音控制消息,并將該錄音控制消息傳送至遠(yuǎn)程桌面服務(wù)端進(jìn)行處理,遠(yuǎn)程桌面服務(wù)端將處理后的錄音控制消息傳送至遠(yuǎn)程桌面客戶端,遠(yuǎn)程桌面客戶端根據(jù)錄音控制消息進(jìn)行錄音操作,得到錄音數(shù)據(jù),遠(yuǎn)程桌面客戶端再將錄音數(shù)據(jù)經(jīng)遠(yuǎn)程桌面服務(wù)端處理后傳送至音頻硬件抽象層模塊,進(jìn)行錄音數(shù)據(jù)的導(dǎo)入,完成錄音重定向。

所述的音頻播放重定向具體包括以下步驟:

(a-1)音樂播放應(yīng)用開始播放音樂,音樂文件經(jīng)audioflinger進(jìn)程中的系統(tǒng)音頻播放組件解碼混音處理后,得到預(yù)處理音頻數(shù)據(jù),并將該預(yù)處理音頻數(shù)據(jù)傳送至音頻硬件抽象層模塊中的音頻播放數(shù)據(jù)截取模塊;

(a-2)音頻播放數(shù)據(jù)截取模塊截取預(yù)處理音頻數(shù)據(jù)中的音頻播放數(shù)據(jù),并將該音頻播放數(shù)據(jù)存放于音頻播放數(shù)據(jù)截取模塊與遠(yuǎn)程桌面服務(wù)端中的音頻播放重定向代理模塊共享的第一匿名共享內(nèi)存中;

(a-3)音頻播放重定向代理模塊不斷地從第一匿名共享內(nèi)存中讀取音頻播放數(shù)據(jù),并通過第一通信模塊將音頻播放數(shù)據(jù)發(fā)送到遠(yuǎn)程桌面客戶端;

(a-4)遠(yuǎn)程桌面客戶端將通過第二通信模塊接收的音頻播放數(shù)據(jù)傳送至音頻播放重定向處理模塊,并使用遠(yuǎn)程桌面客戶端本地音頻播放系統(tǒng)進(jìn)行處理;

(a-5)音頻播放重定向處理模塊將處理后的音頻播放數(shù)據(jù)于本地聲卡設(shè)備上播放出來,實(shí)現(xiàn)音頻播放重定向。

所述的錄音重定向具體包括以下步驟:

(b-1)錄音應(yīng)用開始錄制音頻,audioflinger進(jìn)程中的系統(tǒng)錄音采集組件對(duì)錄音啟動(dòng)請(qǐng)求進(jìn)行錄音采集初始化處理,得到預(yù)處理錄音啟動(dòng)請(qǐng)求,并將該預(yù)處理錄音啟動(dòng)請(qǐng)求傳送至音頻硬件抽象層模塊中的錄音控制消息捕獲模塊;

(b-2)錄音控制消息捕獲模塊通過輪詢線程捕獲到預(yù)處理錄音啟動(dòng)請(qǐng)求,進(jìn)行錄音采集相關(guān)參數(shù)初始化處理,得到錄音啟動(dòng)信息和錄音采集相關(guān)參數(shù)信息,并將錄音采集相關(guān)參數(shù)信息與錄音啟動(dòng)信息存放于錄音控制消息捕獲模塊與遠(yuǎn)程桌面服務(wù)端中的錄音控制消息代理模塊共享的第二匿名共享內(nèi)存中;

(b-3)錄音控制消息代理模塊不斷地從第二匿名共享內(nèi)存中讀取錄音采集相關(guān)參數(shù)信息與錄音啟動(dòng)信息,并通過第一通信模塊將讀取的錄音采集相關(guān)參數(shù)信息與錄音啟動(dòng)信息發(fā)送到遠(yuǎn)程桌面客戶端;

(b-4)遠(yuǎn)程桌面客戶端將通過第二通信模塊接收的錄音采集相關(guān)參數(shù)信息與錄音啟動(dòng)信息傳送至錄音控制消息處理模塊,并進(jìn)行錄音控制消息解析處理;

(b-5)錄音控制消息處理模塊將處理后的錄音采集相關(guān)參數(shù)信息傳送至錄音重定向處理模塊;

(b-6)錄音重定向處理模塊根據(jù)接收到的錄音采集相關(guān)參數(shù)信息從麥克風(fēng)設(shè)備中采集錄音數(shù)據(jù),并將該錄音數(shù)據(jù)經(jīng)第二通信模塊傳送至遠(yuǎn)程桌面服務(wù)端;

(b-7)遠(yuǎn)程桌面服務(wù)端將通過第一通信模塊接收的錄音數(shù)據(jù)傳送至錄音重定向代理模塊進(jìn)行數(shù)據(jù)緩存處理,并將處理后的錄音數(shù)據(jù)存放于音頻硬件抽象層模塊中的錄音數(shù)據(jù)導(dǎo)入模塊與錄音重定向代理模塊共享的第三匿名共享內(nèi)存中;

(b-8)錄音數(shù)據(jù)導(dǎo)入模塊不斷地從第三匿名共享內(nèi)存中讀取錄音數(shù)據(jù),并將該錄音數(shù)據(jù)寫入到系統(tǒng)硬件抽象層的錄音數(shù)據(jù)聲卡驅(qū)動(dòng)讀取函數(shù)接口中;

(b-9)錄音應(yīng)用停止錄制音頻,audioflinger進(jìn)程中的系統(tǒng)錄音采集組件對(duì)暫停錄音請(qǐng)求進(jìn)行停止錄音采集處理,并將處理好的暫停錄音請(qǐng)求傳送至音頻硬件抽象層模塊中的錄音控制消息捕獲模塊;

(b-10)錄音控制消息捕獲模塊捕獲到暫停錄音請(qǐng)求,并進(jìn)行錄音控制消息封裝處理,得到錄音暫停消息,并將該錄音暫停消息存放于錄音控制消息捕獲模塊與遠(yuǎn)程桌面服務(wù)端中的錄音控制消息代理模塊共享的第二匿名共享內(nèi)存中;

(b-11)錄音控制消息代理模塊不斷地從第二匿名共享內(nèi)存中讀取錄音暫停信息,并通過第一通信模塊將讀取的錄音暫停信息發(fā)送到遠(yuǎn)程桌面客戶端;

(b-12)遠(yuǎn)程桌面客戶端將通過第二通信模塊接收的錄音暫停信息傳送至錄音控制消息處理模塊,并進(jìn)行錄音控制消息解析處理,

(b-13)錄音控制消息處理模塊將處理后的錄音暫停信息傳送至錄音重定向處理模塊;

(b-14)錄音重定向處理模塊根據(jù)接收到的錄音暫停信息停止向遠(yuǎn)程桌面服務(wù)端發(fā)送采集到的錄音數(shù)據(jù),實(shí)現(xiàn)錄音重定向。

本發(fā)明的技術(shù)方案基于android系統(tǒng)遠(yuǎn)程桌面環(huán)境,實(shí)現(xiàn)了音頻播放重定向和麥克風(fēng)錄音重定向兩種功能,滿足遠(yuǎn)程桌面環(huán)境下的音頻需求。相比于其他桌面系統(tǒng)的音頻重定向,本方案首先實(shí)現(xiàn)了android移動(dòng)操作系統(tǒng)平臺(tái)下的音頻重定向的功能,并且達(dá)到了低延時(shí)的效果。同時(shí),本方案的技術(shù)實(shí)現(xiàn)對(duì)android源碼做了保證可移植性條件下的最小化修改,可以適配在不同版本和不同廠商定制的android系統(tǒng)中。

附圖說明

圖1是本發(fā)明提供的android系統(tǒng)服務(wù)端的實(shí)施例結(jié)構(gòu)示意圖;

圖2是本發(fā)明提供的基于android系統(tǒng)遠(yuǎn)程桌面的音頻重定向系統(tǒng)的結(jié)構(gòu)示意圖;

圖3是本發(fā)明提供的基于android系統(tǒng)遠(yuǎn)程桌面的音頻重定向方法中音頻播放重定向方法實(shí)施例流程示意圖;

圖4是本發(fā)明提供的基于android系統(tǒng)遠(yuǎn)程桌面的音頻重定向方法中錄音重定向方法實(shí)施例流程示意圖。

具體實(shí)施方式

為了更為具體地描述本發(fā)明,下面結(jié)合附圖及具體實(shí)施方式對(duì)本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)說明。

圖1所示的是本發(fā)明提供的android系統(tǒng)服務(wù)端的實(shí)施例結(jié)構(gòu)示意圖。本實(shí)施例所描述的android系統(tǒng)服務(wù)端,包括:應(yīng)用層的音樂播放應(yīng)用與錄音應(yīng)用、系統(tǒng)框架層的audiofinger進(jìn)程、硬件抽象層的音頻硬件抽象層模塊以及系統(tǒng)框架層的遠(yuǎn)程桌面服務(wù)端。

其中,audiofinger進(jìn)程包括:系統(tǒng)音頻播放組件,用于對(duì)音樂文件進(jìn)行解碼混音處理,并將處理好的音頻播放數(shù)據(jù)傳送至硬件抽象層的音頻硬件抽象層模塊;系統(tǒng)錄音采集組件,用于對(duì)應(yīng)用層的錄音請(qǐng)求進(jìn)行處理,并將處理好的請(qǐng)求傳送至音頻硬件抽象層模塊。

音頻硬件抽象層模塊包括:錄音控制消息捕獲模塊,負(fù)責(zé)在系統(tǒng)硬件抽象層捕獲到錄音啟動(dòng)、暫停和錄音采集相關(guān)參數(shù)等消息,然后傳遞給遠(yuǎn)程桌面服務(wù)端應(yīng)用程序中的錄音控制消息代理模塊;錄音數(shù)據(jù)導(dǎo)入模塊,負(fù)責(zé)將遠(yuǎn)程桌面服務(wù)端應(yīng)用程序中錄音重定向代理模塊接收到的錄音數(shù)據(jù)導(dǎo)入到系統(tǒng)硬件抽象層的錄音數(shù)據(jù)聲卡驅(qū)動(dòng)讀取函數(shù)接口中;音頻播放數(shù)據(jù)截取模塊,負(fù)責(zé)從系統(tǒng)硬件抽象層中寫入聲卡驅(qū)動(dòng)的函數(shù)接口截取到音頻播放數(shù)據(jù),然后傳送給遠(yuǎn)程桌面服務(wù)端應(yīng)用程序中音頻播放重定向代理模塊。

遠(yuǎn)程桌面服務(wù)端包括:第一通信模塊,主要負(fù)責(zé)遠(yuǎn)程桌面服務(wù)端和遠(yuǎn)程桌面客戶端之間的網(wǎng)絡(luò)通信;錄音控制消息代理模塊,負(fù)責(zé)將錄音啟動(dòng)、暫停和錄音采集相關(guān)參數(shù)等消息傳送到遠(yuǎn)程桌面客戶端;錄音重定向代理模塊,負(fù)責(zé)接收從遠(yuǎn)程桌面客戶端麥克風(fēng)設(shè)備采集到的錄音數(shù)據(jù);音頻播放重定向代理模塊,負(fù)責(zé)將遠(yuǎn)程桌面服務(wù)端產(chǎn)生的音頻播放數(shù)據(jù)傳送到遠(yuǎn)程桌面客戶端。

圖2所示的是本發(fā)明提供的基于android系統(tǒng)遠(yuǎn)程桌面的音頻重定向系統(tǒng)的實(shí)施例結(jié)構(gòu)示意圖。本實(shí)施例所描述的基于android系統(tǒng)遠(yuǎn)程桌面的音頻重定向系統(tǒng),包括圖1所示的android系統(tǒng)服務(wù)端和遠(yuǎn)程桌面客戶端,android系統(tǒng)服務(wù)端與遠(yuǎn)程桌面客戶端通過網(wǎng)絡(luò)連接,其中,遠(yuǎn)程桌面客戶端,包括:第二通信模塊,主要負(fù)責(zé)遠(yuǎn)程桌面客戶端和遠(yuǎn)程桌面服務(wù)端之間的網(wǎng)絡(luò)通信;錄音控制消息處理模塊,負(fù)責(zé)解析從遠(yuǎn)程桌面服務(wù)端發(fā)送過來的錄音控制消息,并控制錄音重定向處理模塊是否發(fā)送麥克風(fēng)設(shè)備采集到的錄音數(shù)據(jù);錄音重定向處理模塊,負(fù)責(zé)根據(jù)錄音控制消息處理模塊發(fā)送過來的麥克風(fēng)錄音采集參數(shù)來采集錄音數(shù)據(jù),并將錄音數(shù)據(jù)發(fā)送到遠(yuǎn)程桌面服務(wù)端;音頻播放重定向處理模塊,負(fù)責(zé)將遠(yuǎn)程服務(wù)端發(fā)送過來的音頻播放數(shù)據(jù)在遠(yuǎn)程桌面客戶端本地的聲卡上播放。

本發(fā)明提供的基于android系統(tǒng)遠(yuǎn)程桌面的音頻重定向方法,包括:音頻播放重定向方法與錄音重定向方法。

其中,圖3所示的是本發(fā)明提供的基于android系統(tǒng)遠(yuǎn)程桌面的音頻播放重定向方法實(shí)施例流程示意圖。本實(shí)施例所描述的基于android系統(tǒng)遠(yuǎn)程桌面的音頻播放重定向方法,具體包括以下步驟:

s101,音樂播放應(yīng)用開始播放音樂,音樂文件經(jīng)系統(tǒng)音頻播放組件解碼混音處理后,得到預(yù)處理音頻數(shù)據(jù),并將該預(yù)處理音頻數(shù)據(jù)傳送至音頻播放數(shù)據(jù)截取模塊。

s102,音頻播放數(shù)據(jù)截取模塊截取預(yù)處理音頻數(shù)據(jù)中的音頻播放數(shù)據(jù),并將該音頻播放數(shù)據(jù)存放于第一匿名共享內(nèi)存中。

s103,音頻播放重定向代理模塊不斷地從第一匿名共享內(nèi)存中讀取音頻播放數(shù)據(jù),并通過第一通信模塊將音頻播放數(shù)據(jù)發(fā)送到遠(yuǎn)程桌面客戶端。

s104,遠(yuǎn)程桌面客戶端將通過第二通信模塊接收的音頻播放數(shù)據(jù)傳送至音頻播放重定向處理模塊,并使用遠(yuǎn)程桌面客戶端本地音頻播放系統(tǒng)進(jìn)行處理。

s105,音頻播放重定向處理模塊將處理后的音頻播放數(shù)據(jù)于本地聲卡設(shè)備上播放出來,實(shí)現(xiàn)音頻播放重定向。

圖4是本發(fā)明提供的基于android系統(tǒng)遠(yuǎn)程桌面的錄音重定向方法實(shí)施例流程示意圖。本實(shí)施例所描述的基于android系統(tǒng)遠(yuǎn)程桌面的錄音重定向方法,具體包括以下步驟:

s201,錄音應(yīng)用開始錄制音頻,系統(tǒng)錄音采集組件對(duì)錄音啟動(dòng)請(qǐng)求進(jìn)行錄音采集初始化處理,得到預(yù)處理錄音啟動(dòng)請(qǐng)求,并將該預(yù)處理錄音啟動(dòng)請(qǐng)求傳送至錄音控制消息捕獲模塊。

s202,錄音控制消息捕獲模塊捕獲到預(yù)處理錄音啟動(dòng)請(qǐng)求,進(jìn)行錄音采集相關(guān)參數(shù)初始化處理,得到錄音啟動(dòng)信息和錄音采集相關(guān)參數(shù)信息,并將錄音采集相關(guān)參數(shù)信息與錄音啟動(dòng)信息存放于第二匿名共享內(nèi)存中。

此處的錄音采集相關(guān)參數(shù)消息包括:錄音采集所需的采樣率、采樣通道數(shù)以及采樣深度參數(shù)信息。

s203,錄音控制消息代理模塊不斷地從第二匿名共享內(nèi)存中讀取錄音采集相關(guān)參數(shù)信息與錄音啟動(dòng)信息,并通過第一通信模塊將讀取的錄音采集相關(guān)參數(shù)信息與錄音啟動(dòng)信息發(fā)送到遠(yuǎn)程桌面客戶端。

s204,遠(yuǎn)程桌面客戶端將通過第二通信模塊接收的錄音采集相關(guān)參數(shù)信息與錄音啟動(dòng)信息傳送至錄音控制消息處理模塊,并進(jìn)行錄音控制消息解析處理。

s205,錄音控制消息處理模塊將處理后的錄音采集相關(guān)參數(shù)信息傳送至錄音重定向處理模塊。

s206,錄音重定向處理模塊根據(jù)接收到的錄音采集相關(guān)參數(shù)信息從麥克風(fēng)設(shè)備中采集錄音數(shù)據(jù),并將該錄音數(shù)據(jù)經(jīng)第二通信模塊傳送至遠(yuǎn)程桌面服務(wù)端。

s207,遠(yuǎn)程桌面服務(wù)端將通過第一通信模塊接收的錄音數(shù)據(jù)傳送至錄音重定向代理模塊進(jìn)行數(shù)據(jù)緩存處理,并將處理后的錄音數(shù)據(jù)存放于第三匿名共享內(nèi)存中。

s208,錄音數(shù)據(jù)導(dǎo)入模塊不斷地從第三匿名共享內(nèi)存中讀取錄音數(shù)據(jù),并將該錄音數(shù)據(jù)寫入到系統(tǒng)硬件抽象層的錄音數(shù)據(jù)聲卡驅(qū)動(dòng)讀取函數(shù)接口中。

s209,錄音應(yīng)用停止錄制音頻,audioflinger進(jìn)程中的系統(tǒng)錄音采集組件對(duì)暫停錄音請(qǐng)求進(jìn)行停止錄音采集處理,并將處理好的暫停錄音請(qǐng)求傳送至錄音控制消息捕獲模塊。

s210,錄音控制消息捕獲模塊捕獲到暫停錄音請(qǐng)求,并進(jìn)行錄音控制消息封裝處理,得到錄音暫停消息,并將該錄音暫停消息存放于第二匿名共享內(nèi)存中。

s211,錄音控制消息代理模塊不斷地從第二匿名共享內(nèi)存中讀取錄音暫停信息,并通過第一通信模塊將讀取的錄音暫停信息發(fā)送到遠(yuǎn)程桌面客戶端。

s212,遠(yuǎn)程桌面客戶端將通過第二通信模塊接收的錄音暫停信息傳送至錄音控制消息處理模塊,并進(jìn)行錄音控制消息解析處理。

s213,錄音控制消息處理模塊將處理后的錄音暫停信息傳送至錄音重定向處理模塊。

s214,錄音重定向處理模塊根據(jù)接收到的錄音暫停信息停止向遠(yuǎn)程桌面服務(wù)端發(fā)送采集到的錄音數(shù)據(jù)。

以上所述的具體實(shí)施方式對(duì)本發(fā)明的技術(shù)方案和有益效果進(jìn)行了詳細(xì)說明,應(yīng)理解的是以上所述僅為本發(fā)明的最優(yōu)選實(shí)施例,并不用于限制本發(fā)明,凡在本發(fā)明的原則范圍內(nèi)所做的任何修改、補(bǔ)充和等同替換等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1