基于應(yīng)用虛擬化的網(wǎng)絡(luò)實(shí)時音頻傳輸方法
【專利摘要】一種基于應(yīng)用虛擬化的網(wǎng)絡(luò)實(shí)時音頻傳輸方法,應(yīng)用于服務(wù)端,該方法包括:重定向步驟,當(dāng)用戶在客戶端上要使用服務(wù)端上的應(yīng)用時,利用服務(wù)端的應(yīng)用層聲音捕捉裝置實(shí)時捕捉服務(wù)端的所述應(yīng)用產(chǎn)生的音頻內(nèi)容;處理步驟,對所捕獲的音頻內(nèi)容進(jìn)行處理以轉(zhuǎn)換為客戶端能夠識別的音頻數(shù)據(jù)格式;發(fā)送步驟,將處理后的音頻內(nèi)容通過網(wǎng)絡(luò)傳輸給客戶端。本發(fā)明可以在不支持大型3D游戲的客戶端設(shè)備上支持游戲音頻的實(shí)時回放;并可以在原先不支持現(xiàn)有網(wǎng)游的客戶端設(shè)備上支持網(wǎng)游音頻回放,大大擴(kuò)展了游戲的受眾范圍。
【專利說明】基于應(yīng)用虛擬化的網(wǎng)絡(luò)實(shí)時音頻傳輸方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及應(yīng)用虛擬化領(lǐng)域,特別涉及一種基于應(yīng)用虛擬化的網(wǎng)絡(luò)實(shí)時音頻傳輸方法。
【背景技術(shù)】
[0002]隨著智能手機(jī)的普及與發(fā)展,智能手機(jī)的應(yīng)用種類不斷豐富,人們對應(yīng)用的要求不斷提高,覆蓋了交流、辦公、娛樂等各個方面。同時隨著3G、4G網(wǎng)絡(luò)的發(fā)展,移動終端對多媒體服務(wù)的需求越來越強(qiáng)烈。然而,與此相對的是,受制于芯片制作工藝和功耗的限制,移動設(shè)備的計(jì)算能力先天不足,無法滿足大型實(shí)時多媒體相關(guān)應(yīng)用的需求,特別是3D渲染和大型游戲的需求。即使是最新的高端智能手機(jī),受制于移動平臺的計(jì)算能力,也難以實(shí)現(xiàn)3D圖像的高效渲染與大型游戲的流暢運(yùn)行。這一瓶頸在很大程度上限制了智能手機(jī)和相關(guān)應(yīng)用的進(jìn)一步發(fā)展,而解決這一問題的一種可行方法就是通過應(yīng)用虛擬化實(shí)現(xiàn)運(yùn)算和交互部分的分離。
[0003]應(yīng)用虛擬化的一種常見實(shí)現(xiàn)方式是采用客戶端/服務(wù)端的架構(gòu)。其具體做法是:將應(yīng)用中計(jì)算密集的主要處理邏輯與交互密集的界面顯示、輸入輸出部分進(jìn)行分離,性能較差的客戶端僅負(fù)責(zé)圖形顯示、聲音播放以及操作輸入部分,應(yīng)用自身則在性能較好的服務(wù)端運(yùn)行。
【發(fā)明內(nèi)容】
[0004]鑒于以上內(nèi)容,有必要提供一種基于應(yīng)用虛擬化的網(wǎng)絡(luò)實(shí)時音頻傳輸方法,可以在不支持大型3D游戲的客戶端設(shè)備上支持游戲音頻的實(shí)時回放;并可以在原先不支持現(xiàn)有網(wǎng)游的客戶端設(shè)備上(尤其是便攜式設(shè)備)支持網(wǎng)游音頻回放,大大擴(kuò)展了游戲的受眾范圍。
[0005]一種基于應(yīng)用虛擬化的網(wǎng)絡(luò)實(shí)時音頻傳輸方法,應(yīng)用于服務(wù)端,該方法包括:重定向步驟,當(dāng)用戶在客戶端上要使用服務(wù)端上的應(yīng)用時,利用服務(wù)端的應(yīng)用層聲音捕捉裝置實(shí)時捕捉服務(wù)端的所述應(yīng)用產(chǎn)生的音頻內(nèi)容;處理步驟,對所捕獲的音頻內(nèi)容進(jìn)行處理以轉(zhuǎn)換為客戶端能夠識別的音頻數(shù)據(jù)格式;發(fā)送步驟,將處理后的音頻內(nèi)容通過網(wǎng)絡(luò)傳輸給客戶端。
[0006]相較于現(xiàn)有技術(shù),所述基于應(yīng)用虛擬化的網(wǎng)絡(luò)實(shí)時音頻傳輸方法,其能夠采用重定向Windows Core Audio API的方式獲取服務(wù)端中的應(yīng)用的音頻數(shù)據(jù),對所獲取的音頻數(shù)據(jù)進(jìn)行碼率轉(zhuǎn)換以及數(shù)據(jù)類型的修正后,通過網(wǎng)絡(luò)將處理后的音頻數(shù)據(jù)傳輸至客戶端以使用戶在桌面和移動平臺上實(shí)時播放客戶端所接收的音頻數(shù)據(jù)。
【專利附圖】
【附圖說明】
[0007]圖1是本發(fā)明基于應(yīng)用虛擬化的網(wǎng)絡(luò)實(shí)時音頻傳輸系統(tǒng)的應(yīng)用環(huán)境圖。
[0008]圖2是本發(fā)明的服務(wù)端架構(gòu)圖。[0009]圖3是本發(fā)明Windows Core Audio API接口的參數(shù)列表。
[0010]圖4是本發(fā)明基于應(yīng)用虛擬化的網(wǎng)絡(luò)實(shí)時音頻傳輸方法的較佳實(shí)施例的流程圖。
[0011]主要元件符號說明
【權(quán)利要求】
1.一種基于應(yīng)用虛擬化的網(wǎng)絡(luò)實(shí)時音頻傳輸方法,應(yīng)用于服務(wù)端,其特征在于,該方法包括: 重定向步驟,當(dāng)用戶在客戶端上要使用服務(wù)端上的應(yīng)用時,利用服務(wù)端的應(yīng)用層聲音捕捉裝置實(shí)時捕捉服務(wù)端的所述應(yīng)用產(chǎn)生的音頻內(nèi)容; 處理步驟,對所捕獲的音頻內(nèi)容進(jìn)行處理以轉(zhuǎn)換為客戶端能夠識別的音頻數(shù)據(jù)格式; 發(fā)送步驟,將處理后的音頻內(nèi)容通過網(wǎng)絡(luò)傳輸給客戶端。
2.如權(quán)利要求1所述的基于應(yīng)用虛擬化的網(wǎng)絡(luò)實(shí)時音頻傳輸方法,其特征在于,所述重定向步驟包括: (a)通過Hook子程捕捉服務(wù)端上的所述應(yīng)用的消息; (b)重定向WindowsCore Audio API以使服務(wù)端的所述應(yīng)用調(diào)用服務(wù)端的功能函數(shù); (c)通過重定向后的WindowsCore Audio API獲取所述應(yīng)用的音頻元數(shù)據(jù); (d)根據(jù)所述應(yīng)用的音頻元數(shù)據(jù)捕捉所述應(yīng)用的音頻內(nèi)容; Ce)對所捕捉到的所述應(yīng)用的音頻內(nèi)容進(jìn)行緩存。
3.如權(quán)利要求2所述的基于應(yīng)用虛擬化的網(wǎng)絡(luò)實(shí)時音頻傳輸方法,其特征在于,所述步驟b包括: (bl)獲取Windows Core Audio API接口中函數(shù)的入口地址; (b2)根據(jù)所獲取Windows Core Audio API接口中函數(shù)的入口地址重定向WindowsCore Audio API。`
4.如權(quán)利要求2所述的基于應(yīng)用虛擬化的網(wǎng)絡(luò)實(shí)時音頻傳輸方法,其特征在于,所述功能函數(shù)與Windows Core Audio API接口中函數(shù)的特征保持一致,所述功能函數(shù)用于替換服務(wù)端中Windows Core Audio API接口中的函數(shù),用以通過功能函數(shù)捕捉服務(wù)端對Windows Core Audio API的調(diào)用,從而獲取所述應(yīng)用寫入服務(wù)端的硬件的音頻數(shù)據(jù)。
5.如權(quán)利要求3所述的基于應(yīng)用虛擬化的網(wǎng)絡(luò)實(shí)時音頻傳輸方法,其特征在于,步驟bl包括: 在對Windows Core Audio API接口中的函數(shù)重定向之前,預(yù)先對Audio, dll進(jìn)行測試加載; 通過加載后的Windows Core Audio API接口中的函數(shù)的入口地址以及動態(tài)鏈接庫DLL中Audio, dll的入口地址獲得Windows Core Audio API接口中函數(shù)的入口地址相對于Audio, dll的入口地址的相對差值。
6.如權(quán)利要求3所述的基于應(yīng)用虛擬化的網(wǎng)絡(luò)實(shí)時音頻傳輸方法,其特征在于,步驟bl包括: 通過Windows Core Audio API接口中的函數(shù)的入口在接口的實(shí)例的虛函數(shù)表中的偏移地址獲得Windows Core Audio API接口中函數(shù)的入口地址。
7.如權(quán)利要求5所述的基于應(yīng)用虛擬化的網(wǎng)絡(luò)實(shí)時音頻傳輸方法,其特征在于,在步驟b2中通過跳轉(zhuǎn)地址將Windows Core Audio API接口中函數(shù)的入口地址處的指令更改為跳轉(zhuǎn)指令來實(shí)現(xiàn)函數(shù)重定向。
8.如權(quán)利要求6所述的基于應(yīng)用虛擬化的網(wǎng)絡(luò)實(shí)時音頻傳輸方法,其特征在于,在步驟b2中通過修改Windows Core Audio API接口中函數(shù)的入口在接口的實(shí)例的虛函數(shù)表中的偏移地址實(shí)現(xiàn)對函數(shù)的重定向。
9.如權(quán)利要求2所述的基于應(yīng)用虛擬化的網(wǎng)絡(luò)實(shí)時音頻傳輸方法,其特征在于,通過調(diào)用功能函數(shù)CA_Start、CA_Stop、CA_Reset、CA_Initialize獲取所述應(yīng)用的音頻的格式、碼率的音頻元數(shù)據(jù)。
10.如權(quán)利要求2所述的基于應(yīng)用虛擬化的網(wǎng)絡(luò)實(shí)時音頻傳輸方法,其特征在于,通過調(diào)用GetBuffer對應(yīng)的功能函數(shù)CA_GetBuffer及ReleaseBuffer對應(yīng)的功能函數(shù)CA_ReleaseBuffer實(shí)現(xiàn)對應(yīng) 用的音頻內(nèi)容的獲取以及緩存。
【文檔編號】H04L29/08GK103701854SQ201310629091
【公開日】2014年4月2日 申請日期:2013年11月29日 優(yōu)先權(quán)日:2013年11月29日
【發(fā)明者】張悠慧, 渠鵬, 周佳祥, 鄭緯民 申請人:深圳清華大學(xué)研究院