一種從安卓系統(tǒng)獲取立體聲數(shù)據(jù)的方法及系統(tǒng)的制作方法
【專利摘要】本申請公開了一種從安卓系統(tǒng)中獲取立體聲數(shù)據(jù)的方法,包括:獲取音頻數(shù)據(jù);對所述音頻數(shù)據(jù)進(jìn)行緩沖處理;對緩沖處理后的音頻數(shù)據(jù)進(jìn)行封裝;將封裝后的音頻數(shù)據(jù)上傳到應(yīng)用程序接口處,供用戶讀取音頻數(shù)據(jù)。本申請通過對音頻數(shù)據(jù)進(jìn)行緩沖處理,以應(yīng)對來自上層的異步調(diào)用,然后將緩沖處理后的音頻數(shù)據(jù)進(jìn)行封裝,上傳到應(yīng)用程序接口處,供用戶讀取音頻數(shù)據(jù),這樣避開了傳統(tǒng)的數(shù)據(jù)流向,音頻數(shù)據(jù)不需要經(jīng)過平臺方案廠商的編寫和維護(hù),也就繞開了這種不確定因素,使得用戶獲得的音頻數(shù)據(jù)是真正的立體聲。
【專利說明】一種從安卓系統(tǒng)獲取立體聲數(shù)據(jù)的方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本申請涉及通訊系統(tǒng)【技術(shù)領(lǐng)域】,更具體地說,涉及一種從安卓系統(tǒng)獲取立體聲數(shù)據(jù)的方法及系統(tǒng)。
【背景技術(shù)】
[0002]目前,手機(jī)、機(jī)頂盒等設(shè)備廣泛使用谷歌推出的安卓系統(tǒng)。并且,谷歌為安卓系統(tǒng)的程序員提供軟件開發(fā)工具包,用于實(shí)現(xiàn)不同的功能,例如獲取聲音數(shù)據(jù)。但是,通過官方軟件開發(fā)工具包提供的接口獲得的立體聲數(shù)據(jù),在某些平臺上并不能夠得到真立體聲(左右聲道分別采集來自不同的模擬一數(shù)字信號轉(zhuǎn)換通道),而獲得的是假立體聲(某一個聲道的數(shù)據(jù)是另一個聲道數(shù)據(jù)的簡單復(fù)制)。這是因?yàn)?,硬件平臺方案廠商對原本開源的系統(tǒng)進(jìn)行了大量的更改,并拒絕為多數(shù)客戶開放源代碼,使得每一個廠家定制的系統(tǒng)都會與市面上其他安卓系統(tǒng)表現(xiàn)出極大的差異,而硬件平臺方案廠商以外的開發(fā)者卻無法看到具體的改動。
[0003]為了解決上述無法獲得真立體聲的問題,現(xiàn)有技術(shù)中一般是通過以下幾種手段來解決:第一、向硬件平臺方案廠商付費(fèi)要求獲得部分或全部系統(tǒng)源碼,并修改其對應(yīng)的組件;第二、購買其他能夠獲取真立體聲的平臺。但是,這兩種方法都存在弊端,首先,需要投入一定的資金,且由于代碼數(shù)量巨大,無法定位需要修改的準(zhǔn)確位置。其次,代碼都是涉密的,因此會帶來不必要的商業(yè)和法律因素。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本申請?zhí)峁┝艘环N從安卓系統(tǒng)獲取立體聲的方法及系統(tǒng),用于解決上述現(xiàn)有技術(shù)中無法在低成本、低風(fēng)險(xiǎn)的情況下,能夠獲取真立體聲。
[0005]為了實(shí)現(xiàn)上述目的,現(xiàn)提出的方案如下:
[0006]—種從安卓系統(tǒng)中獲取立體聲數(shù)據(jù)的方法,包括:
[0007]獲取音頻數(shù)據(jù);
[0008]對所述音頻數(shù)據(jù)進(jìn)行緩沖處理;
[0009]對緩沖處理后的音頻數(shù)據(jù)進(jìn)行封裝;
[0010]將封裝后的音頻數(shù)據(jù)上傳到應(yīng)用程序接口處,供用戶讀取音頻數(shù)據(jù)。
[0011 ]優(yōu)選地,獲取的音頻數(shù)據(jù)來源于安卓內(nèi)核。
[0012]優(yōu)選地,所述獲取音頻數(shù)據(jù)的過程為:采用雙聲道錄音方式,獲取雙聲道音頻數(shù)據(jù)。
[0013]優(yōu)選地,所述對所述音頻數(shù)據(jù)進(jìn)行緩沖處理,具體采用環(huán)形緩沖技術(shù)和異步等待技術(shù)。
[0014]優(yōu)選地,所述將封裝后的音頻數(shù)據(jù)上傳到應(yīng)用程序接口處,具體采用JAVA本地調(diào)用技術(shù)。
[0015]—種從安卓系統(tǒng)中獲取立體聲數(shù)據(jù)的系統(tǒng),包括:[0016]數(shù)據(jù)獲取單元,用于從安卓內(nèi)核獲取音頻數(shù)據(jù);
[0017]數(shù)據(jù)緩沖單元,用于對所述數(shù)據(jù)獲取單元獲取的音頻數(shù)據(jù)進(jìn)行緩沖;
[0018]接口單元,用于響應(yīng)用戶的調(diào)用指令,將音頻數(shù)據(jù)進(jìn)行封裝后上傳到應(yīng)用程序接口處。
[0019]優(yōu)選地,所述數(shù)據(jù)獲取單元,采用雙聲道錄音方式,從安卓內(nèi)核獲取雙聲道音頻數(shù)據(jù)。
[0020]優(yōu)選地,所述數(shù)據(jù)緩存單元,采用環(huán)形緩沖技術(shù)和異步等待技術(shù),對所述數(shù)據(jù)獲取單元獲取的音頻數(shù)據(jù)進(jìn)行緩沖。
[0021]優(yōu)選地,所述接口單元,采用JAVA本地調(diào)用技術(shù)將音頻數(shù)據(jù)進(jìn)行封裝后上傳到應(yīng)用程序接口處。
[0022]從上述的技術(shù)方案可以看出,本申請公開的立體聲數(shù)據(jù)獲取方法,通過對音頻數(shù)據(jù)進(jìn)行緩沖處理,以應(yīng)對來自上層的異步調(diào)用,然后將緩沖處理后的音頻數(shù)據(jù)進(jìn)行封裝,上傳到應(yīng)用程序接口處,供用戶讀取音頻數(shù)據(jù)。通過本申請公開的上述方案,避開了傳統(tǒng)的數(shù)據(jù)流向,音頻數(shù)據(jù)不需要經(jīng)過平臺方案廠商的編寫和維護(hù),也就繞開了這種不確定因素,使得用戶獲得的音頻數(shù)據(jù)是真正的立體聲。
【專利附圖】
【附圖說明】
[0023]為了更清楚地說明本申請實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
[0024]圖1為本申請實(shí)施例公開的傳統(tǒng)的安卓應(yīng)用程序錄音的數(shù)據(jù)流程圖;
[0025]圖2為本申請實(shí)施例公開的一種從安卓系統(tǒng)獲取立體聲數(shù)據(jù)的方法流程圖;
[0026]圖3為本申請實(shí)施例公開的一種從安卓系統(tǒng)獲取立體聲數(shù)據(jù)的系統(tǒng)結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0027]下面將結(jié)合本申請實(shí)施例中的附圖,對本申請實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾堉械膶?shí)施例,本領(lǐng)域普通技術(shù)人員在沒有付出創(chuàng)造性勞動前提下所獲得的所有其它實(shí)施例,都屬于本申請保護(hù)的范圍。
[0028]現(xiàn)有的安卓系統(tǒng)程序員在開發(fā)軟件時,使用官方軟件開發(fā)工具包提供的接口獲得的立體聲數(shù)據(jù),但是這種開發(fā)方式在某些平臺上并不能夠得到真立體聲(左右聲道分別采集來自不同的模擬一數(shù)字信號轉(zhuǎn)換通道),而獲得的是假立體聲(某一個聲道的數(shù)據(jù)是另一個聲道數(shù)據(jù)的簡單復(fù)制),從而無法普遍的適用于各種平臺。
[0029]傳統(tǒng)的安卓應(yīng)用程序錄音的數(shù)據(jù)流程參見圖1。
[0030]如圖1所示,包括:
[0031]步驟SlOl:獲取音頻數(shù)據(jù);
[0032]步驟S102:音頻數(shù)據(jù)經(jīng)過底層音頻支持庫;
[0033]具體地,音頻數(shù)據(jù)經(jīng)過Iibtinyalsa (底層音頻支持庫),這一部分由谷歌編寫,由平臺方案廠商維護(hù)。
[0034]步驟S103:音頻數(shù)據(jù)經(jīng)過硬件抽象層;
[0035]具體地,音頻數(shù)據(jù)經(jīng)過hal層(硬件抽象層),這一部分由平臺方案廠商編寫和維護(hù)。
[0036]步驟S104:音頻數(shù)據(jù)經(jīng)過安卓音頻框架服務(wù);
[0037]具體地,音頻數(shù)據(jù)經(jīng)過audioflinger (安卓音頻框架服務(wù))這一部分由谷歌編寫,由平臺方案廠商維護(hù)。
[0038]步驟S105:音頻數(shù)據(jù)經(jīng)過安卓音頻框架客戶端;
[0039]具體地,音頻數(shù)據(jù)經(jīng)過audiorecord (安卓音頻框架客戶端),這一部分由谷歌編寫,由平臺方案廠商維護(hù)。
[0040]步驟S106:開發(fā)者通過軟件開發(fā)工具包提供的接口在應(yīng)用程序中讀出數(shù)據(jù)。
[0041]在這個過程中,當(dāng)以立體聲格式上傳時,不同的硬件平臺方案廠商在步驟S102-S105中采取的策略時不相同的,我們已知的有以下三種:
[0042]一、在步驟S102中以雙聲道錄音,在步驟S103中完全復(fù)制,在步驟S104中完全復(fù)制,在步驟S105中獲得真立體聲數(shù)據(jù)。
[0043]二、在步驟S102中以雙聲道錄音,在步驟S103中以左聲道數(shù)據(jù)覆蓋到右聲道,在步驟S104中完全復(fù)制,在步驟S105中獲得假立體聲數(shù)據(jù)。
[0044]三、在步驟S102中以單聲道錄音,在步驟S103中以左聲道數(shù)據(jù)覆蓋到右聲道,在步驟S104中完全復(fù)制,在步驟S5中獲得假立體聲數(shù)據(jù)。
[0045]由此可見,上述傳統(tǒng)過程中,由于存在平臺方案廠商的編寫和維護(hù)內(nèi)容,這就增加了不確定因素,使得最終獲得的音頻數(shù)據(jù)有可能是假的立體聲。
[0046]為了解決上述問題,本申請?zhí)岢隽艘环N新的立體聲數(shù)據(jù)獲取方法,參見圖2。
[0047]如圖2所示,該方法包括:
[0048]步驟S201:獲取音頻數(shù)據(jù);
[0049]步驟S202:對所述音頻數(shù)據(jù)進(jìn)行緩沖處理;
[0050]具體地,通過對音頻數(shù)據(jù)進(jìn)行緩沖處理,以應(yīng)對來自上層的異步調(diào)用。
[0051]步驟S203:對緩沖處理后的音頻數(shù)據(jù)進(jìn)行封裝;
[0052]具體地,由于此時數(shù)據(jù)是以C語言的形式存在的,而應(yīng)用程序能識別的是JAVA語言,因此需要對音頻數(shù)據(jù)進(jìn)行封裝處理。
[0053]步驟S204:將封裝后的音頻數(shù)據(jù)上傳到應(yīng)用程序接口處,供用戶讀取音頻數(shù)據(jù)。
[0054]具體地,用戶可以通過本申請?zhí)峁┑姆椒?,在?yīng)用程序的接口位置,讀取音頻數(shù)據(jù)。
[0055]本申請實(shí)施例公開的立體聲數(shù)據(jù)獲取方法,通過對音頻數(shù)據(jù)進(jìn)行緩沖處理,以應(yīng)對來自上層的異步調(diào)用,然后將緩沖處理后的音頻數(shù)據(jù)進(jìn)行封裝,上傳到應(yīng)用程序接口處,供用戶讀取音頻數(shù)據(jù)。通過本申請公開的上述方案,避開了傳統(tǒng)的數(shù)據(jù)流向,音頻數(shù)據(jù)不需要經(jīng)過平臺方案廠商的編寫和維護(hù),也就繞開了這種不確定因素,使得用戶獲得的音頻數(shù)據(jù)是真正的立體聲。該方法可以普遍的應(yīng)用于電視、機(jī)頂盒、手機(jī)、視頻會議系統(tǒng)等對立體聲有要求的安卓設(shè)備中。
[0056]需要說明的是,此處獲取的音頻數(shù)據(jù)是來源于安卓的內(nèi)核的。且獲取音頻數(shù)據(jù)時可以采用雙聲道錄音的方式,來獲取音頻數(shù)據(jù)。
[0057]需要說明的是,上述對音頻數(shù)據(jù)進(jìn)行緩沖處理,可以采用現(xiàn)有成熟的環(huán)形緩沖技術(shù)以及異步等待技術(shù)。
[0058]需要說明的是,上述將封裝后的音頻數(shù)據(jù)上傳到應(yīng)用程序接口處,可以采用JAVA本地調(diào)用技術(shù)。
[0059]相應(yīng)地,本申請還公開了一種從安卓系統(tǒng)中獲取立體聲數(shù)據(jù)的系統(tǒng),參見圖3所示:
[0060]該系統(tǒng)包括:
[0061]數(shù)據(jù)獲取單元31,用于從安卓內(nèi)核獲取音頻數(shù)據(jù);
[0062]數(shù)據(jù)緩沖單元32,用于對所述數(shù)據(jù)獲取單元31獲取的音頻數(shù)據(jù)進(jìn)行緩沖;
[0063]接口單元33,用于響應(yīng)用戶的調(diào)用指令,將音頻數(shù)據(jù)進(jìn)行封裝后上傳到應(yīng)用程序接口處。
[0064]本申請實(shí)施例公開的立體聲數(shù)據(jù)獲取系統(tǒng),通過數(shù)據(jù)緩沖單元32對音頻數(shù)據(jù)進(jìn)行緩沖處理,以應(yīng)對來自上層的異步調(diào)用,然后由接口單元33將緩沖處理后的音頻數(shù)據(jù)進(jìn)行封裝,上傳到應(yīng)用程序接口處,供用戶讀取音頻數(shù)據(jù)。通過本申請公開的上述系統(tǒng),避開了傳統(tǒng)的數(shù)據(jù)流向,音頻數(shù)據(jù)不需要經(jīng)過平臺方案廠商的編寫和維護(hù),也就繞開了這種不確定因素,使得用戶獲得 的音頻數(shù)據(jù)是真正的立體聲。該系統(tǒng)使用時可以直接集成在應(yīng)用程序中,方便、簡單。并且可以普遍的應(yīng)用于電視、機(jī)頂盒、手機(jī)、視頻會議系統(tǒng)等對立體聲有要求的安卓設(shè)備中。
[0065]需要說明的是,數(shù)據(jù)獲取單元31獲取的音頻數(shù)據(jù)是來源于安卓的內(nèi)核的。且獲取音頻數(shù)據(jù)時可以采用雙聲道錄音的方式,來獲取音頻數(shù)據(jù)。
[0066]需要說明的是,數(shù)據(jù)緩沖單元32對音頻數(shù)據(jù)進(jìn)行緩沖處理,可以采用現(xiàn)有成熟的環(huán)形緩沖技術(shù)以及異步等待技術(shù)。
[0067]需要說明的是,接口單元33將封裝后的音頻數(shù)據(jù)上傳到應(yīng)用程序接口處時,可以采用JAVA本地調(diào)用技術(shù)。
[0068]最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實(shí)體或者操作與另一個實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
[0069]本說明書中各個實(shí)施例采用遞進(jìn)的方式描述,每個實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個實(shí)施例之間相同相似部分互相參見即可。
[0070]對所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本申請。對這些實(shí)施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本申請的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本申請將不會被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。
【權(quán)利要求】
1.一種從安卓系統(tǒng)中獲取立體聲數(shù)據(jù)的方法,其特征在于,包括: 獲取音頻數(shù)據(jù); 對所述音頻數(shù)據(jù)進(jìn)行緩沖處理; 對緩沖處理后的音頻數(shù)據(jù)進(jìn)行封裝; 將封裝后的音頻數(shù)據(jù)上傳到應(yīng)用程序接口處,供用戶讀取音頻數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,獲取的音頻數(shù)據(jù)來源于安卓內(nèi)核。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述獲取音頻數(shù)據(jù)的過程為:采用雙聲道錄音方式,獲取雙聲道音頻數(shù)據(jù)。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對所述音頻數(shù)據(jù)進(jìn)行緩沖處理,具體采用環(huán)形緩沖技術(shù)和異步等待技術(shù)。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將封裝后的音頻數(shù)據(jù)上傳到應(yīng)用程序接口處,具體采用JAVA本地調(diào)用技術(shù)。
6.—種從安卓系統(tǒng)中獲取立體聲數(shù)據(jù)的系統(tǒng),其特征在于,包括: 數(shù)據(jù)獲取單元,用于從安卓內(nèi)核獲取音頻數(shù)據(jù); 數(shù)據(jù)緩沖單元,用于對所述數(shù)據(jù)獲取單元獲取的音頻數(shù)據(jù)進(jìn)行緩沖; 接口單元,用于響應(yīng)用戶的調(diào)用指令,將音頻數(shù)據(jù)進(jìn)行封裝后上傳到應(yīng)用程序接口處。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述數(shù)據(jù)獲取單元,采用雙聲道錄音方式,從安卓內(nèi)核獲取雙聲道音頻數(shù)據(jù)。
8.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述數(shù)據(jù)緩存單元,采用環(huán)形緩沖技術(shù)和異步等待技術(shù),對所述數(shù)據(jù)獲取單元獲取的音頻數(shù)據(jù)進(jìn)行緩沖。
9.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述接口單元,采用JAVA本地調(diào)用技術(shù)將音頻數(shù)據(jù)進(jìn)行封裝后上傳到應(yīng)用程序接口處。
【文檔編號】H04S1/00GK103781014SQ201410051712
【公開日】2014年5月7日 申請日期:2014年2月14日 優(yōu)先權(quán)日:2014年2月14日
【發(fā)明者】楚立明, 王晶晶 申請人:山東共達(dá)電聲股份有限公司