本發(fā)明涉及電子設(shè)備音頻共享方法及裝置。
背景技術(shù):
微型電子計算機(jī)、移動終端等電子設(shè)備在日常生活中發(fā)揮著越來越重要的作用,越來越多的人擁有兩個或兩個以上的電子設(shè)備。不同電子設(shè)備相互連接,共享硬件或軟件資源,已經(jīng)非常普遍。但目前不同電子設(shè)備往往具有不同的操作系統(tǒng),這會影響電子設(shè)備之間共享硬件或軟件資源。例如,目前移動終端使用的操作系統(tǒng)主要有兩種,美國蘋果公司開發(fā)的IOS系統(tǒng)和開源的安卓(Android)系統(tǒng)。IOS系統(tǒng)電子設(shè)備(安裝IOS系統(tǒng)進(jìn)行管理的電子設(shè)備)和Android系統(tǒng)電子設(shè)備(安裝Android系統(tǒng)進(jìn)行管理的電子設(shè)備)之間還無法實現(xiàn)很多資源的共享。
此外,一些專門針對IOS系統(tǒng)電子設(shè)備開發(fā)的增強設(shè)備(例如充電手機(jī)殼、擴(kuò)容手機(jī)殼等)或者可以和IOS系統(tǒng)電子設(shè)備配合使用的電子設(shè)備(例如可以由IOS系統(tǒng)上的應(yīng)用作為管理軟件的智能手環(huán)、體重秤等),也不能很好的利用IOS系統(tǒng)電子設(shè)備的硬件資源,導(dǎo)致這些設(shè)備還要配備一套完整的硬件,既浪費資源又對設(shè)備本身造成一定的限制。
目前很多IOS系統(tǒng)電子設(shè)備(例如iphone手機(jī))具有性能優(yōu)良的音頻硬件,但其他電子設(shè)備如何共享這些音頻硬件,尚未見成熟的技術(shù)方案報道。
在說明書“背景技術(shù)”部分公開的內(nèi)容,有助于本領(lǐng)域技術(shù)人員理解本發(fā)明的技術(shù)方案,但不應(yīng)據(jù)此認(rèn)為這些內(nèi)容一定屬于現(xiàn)有技術(shù)或公知常識。
技術(shù)實現(xiàn)要素:
為了克服“背景技術(shù)”部分所反映的缺陷,在電子設(shè)備之間實現(xiàn)音頻硬件共享,本發(fā)明提供電子設(shè)備音頻共享方法及裝置。
電子設(shè)備音頻共享方法,包括:第一操作系統(tǒng)電子設(shè)備和第二操作系統(tǒng)電子設(shè)備通過生產(chǎn)者—消費者進(jìn)程方式傳輸音頻數(shù)據(jù)。
進(jìn)一步的,電子設(shè)備音頻共享方法,包括:
第一操作系統(tǒng)電子設(shè)備發(fā)送控制指令給第二操作系統(tǒng),第一操作系統(tǒng)向設(shè)定的緩沖區(qū)寫入音頻數(shù)據(jù),音頻數(shù)據(jù)傳輸給第二操作系統(tǒng),被基于第二操作系統(tǒng)音頻庫的音頻單元消費。
基于第二操作系統(tǒng)音頻庫的音頻單元對獲得的音頻數(shù)據(jù)進(jìn)行處理,通過第二操作系統(tǒng)音頻庫提供的API(Application Programming Interface,應(yīng)用程序編程接口),使用第二操作系統(tǒng)電子設(shè)備的音頻輸出硬件播放。
進(jìn)一步的,電子設(shè)備音頻共享方法,包括:
第一操作系統(tǒng)電子設(shè)備發(fā)送控制指令給第二操作系統(tǒng)。通過第二操作系統(tǒng)音頻庫提供的API獲得第二操作系統(tǒng)電子設(shè)備的音頻輸入硬件的音頻數(shù)據(jù)?;诘诙僮飨到y(tǒng)音頻庫的音頻單元對獲得的音頻數(shù)據(jù)進(jìn)行處理,寫入第一操作系統(tǒng)設(shè)定的緩沖區(qū)。
第一操作系統(tǒng)消費設(shè)定的緩沖區(qū)的音頻數(shù)據(jù)。
進(jìn)一步的,第一操作系統(tǒng)電子設(shè)備發(fā)送控制指令給第二操作系統(tǒng)之前,第一操作系統(tǒng)電子設(shè)備和第二操作系統(tǒng)電子設(shè)備建立socket連接。
進(jìn)一步的,第一操作系統(tǒng)為Android系統(tǒng),第二操作系統(tǒng)為IOS系統(tǒng)。第一操作系統(tǒng)向設(shè)定的緩沖區(qū)寫入音頻數(shù)據(jù),為Android系統(tǒng)的AudioTrack向設(shè)定的緩沖區(qū)寫入音頻數(shù)據(jù)。第一操作系統(tǒng)消費設(shè)定的緩沖區(qū)的音頻數(shù)據(jù),為Android系統(tǒng)的AudioRecord消費設(shè)定的緩沖區(qū)的音頻數(shù)據(jù)。
進(jìn)一步的,控制指令包括音頻數(shù)據(jù)的采樣率、聲道數(shù)、采樣深度等信息。
電子設(shè)備音頻共享裝置,包括音頻處理程序,音頻處理程序能夠調(diào)用基于第二操作系統(tǒng)音頻庫的音頻單元,在第一操作系統(tǒng)電子設(shè)備和第二操作系統(tǒng)電子設(shè)備之間通過生產(chǎn)者—消費者進(jìn)程方式傳輸音頻數(shù)據(jù)。
進(jìn)一步的,第一操作系統(tǒng)為Android系統(tǒng),第二操作系統(tǒng)為IOS系統(tǒng)。
由于電子設(shè)備音頻共享裝置,是用于實現(xiàn)之前所述的電子設(shè)備音頻共享方法的,為了避免不必要的重復(fù),電子設(shè)備音頻共享裝置中的一些描述進(jìn)行了省略。本領(lǐng)域技術(shù)人員通過對照,能夠?qū)﹄娮釉O(shè)備音頻共享裝置有清晰、完整的認(rèn)識。
本發(fā)明技術(shù)方案中,“包括”、“用于”等詞語應(yīng)按照開放式表達(dá)方式理解。本領(lǐng)域技術(shù)人員通過閱讀本說明書并結(jié)合現(xiàn)有技術(shù)或公知常識能夠獲知的內(nèi)容,本說明書中不再贅述。
本發(fā)明提供的電子設(shè)備音頻共享方法及裝置,實現(xiàn)了不同操作系統(tǒng)電子設(shè)備的音頻共享,例如Android系統(tǒng)電子設(shè)備在不同的使用環(huán)境中都能夠靈活可靠的共享IOS系統(tǒng)電子設(shè)備的音頻硬件,傳輸?shù)囊纛l數(shù)據(jù)的音質(zhì)高保真高質(zhì)量,可以實現(xiàn)注諸如具有外放IOS系統(tǒng)音樂等功能的智能硬件。
附圖說明
圖1為具體實施方式中Android系統(tǒng)電子設(shè)備和IOS系統(tǒng)電子設(shè)備用于實現(xiàn)音頻共享的架構(gòu)圖(示意圖)。
圖2為具體實施方式中Android系統(tǒng)電子設(shè)備向IOS系統(tǒng)電子設(shè)備發(fā)送音頻數(shù)據(jù)的流程圖。
圖3為具體實施方式中Android系統(tǒng)電子設(shè)備從IOS系統(tǒng)電子設(shè)備獲取音頻數(shù)據(jù)的流程圖。
具體實施方式
下面對本發(fā)明的實施方式進(jìn)行進(jìn)一步的具體說明。但應(yīng)注意,本發(fā)明的范圍并不局限于所描述的具體技術(shù)方案。任何對所描述的具體技術(shù)方案中的技術(shù)要素進(jìn)行相同或等同替換獲得的技術(shù)方案或本領(lǐng)域技術(shù)人員在所描述的具體技術(shù)方案的基礎(chǔ)上不經(jīng)過創(chuàng)造性勞動就可以獲得的技術(shù)方案,都應(yīng)當(dāng)視為落入本發(fā)明的保護(hù)范圍。
以Android系統(tǒng)電子設(shè)備和IOS系統(tǒng)電子設(shè)備為例說明電子設(shè)備音頻共享方法。IOS系統(tǒng)電子設(shè)備的音頻硬件,包括音頻輸入硬件(例如麥克風(fēng))和音頻輸出硬件(例如聽筒)兩類。Android系統(tǒng)電子設(shè)備共享IOS系統(tǒng)電子設(shè)備的音頻硬件,需要對Android系統(tǒng)電子設(shè)備和IOS系統(tǒng)電子設(shè)備都進(jìn)行必要的定制開發(fā)。
對Android系統(tǒng)電子設(shè)備的定制開發(fā),主要是修改Android系統(tǒng)的AudioTrack及AudioRecord,使得AudioTrack能夠向設(shè)定的緩沖區(qū)寫數(shù)據(jù),而AudioRecord能夠從設(shè)定的緩沖區(qū)讀數(shù)據(jù)(每個AudioTrack和AudioRecord都有與其對應(yīng)的獨立緩沖區(qū))。這樣,Android系統(tǒng)電子設(shè)備和IOS系統(tǒng)電子設(shè)備之間的音頻數(shù)據(jù)傳輸可以通過生產(chǎn)者—消費者進(jìn)程方式實現(xiàn)。生產(chǎn)者—消費者進(jìn)程方式指一組生產(chǎn)者進(jìn)程和一組消費者進(jìn)程共享一個初始為空、有限大小的緩沖區(qū)。只有緩沖區(qū)沒滿時,生產(chǎn)者才能把消息放入到緩沖區(qū),否則必須等待;只有緩沖區(qū)不空時,消費者才能從中取出消息,否則必須等待。緩沖區(qū)為臨界資源,一次只允許一個生產(chǎn)者放入消息,或者一個消費者從中取出消息。
對IOS系統(tǒng)電子設(shè)備的定制開發(fā),主要是開發(fā)一個應(yīng)用(應(yīng)用指能在IOS系統(tǒng)中運行的軟件或程序),該應(yīng)用可以稱為音頻處理程序,來管理Android系統(tǒng)電子設(shè)備和IOS系統(tǒng)電子設(shè)備的音頻共享。音頻處理程序能夠使用IOS系統(tǒng)提供的音頻庫,一方面可以對從Android系統(tǒng)電子設(shè)備獲取到的音頻數(shù)據(jù)進(jìn)行增益降噪等處理并播放出來,另一方面可以對從麥克風(fēng)等音頻輸入硬件獲取的音頻數(shù)據(jù)進(jìn)行增益降噪等處理,傳輸給Android系統(tǒng)電子設(shè)備。IOS系統(tǒng)提供基于音頻庫的Audio Unit(中文可以翻譯為音頻單元),音頻單元可以進(jìn)行快速、模塊化的音頻處理,音頻處理程序調(diào)用不同的音頻單元即可實現(xiàn)相應(yīng)的音頻處理操作。
在以上所述的定制開發(fā)的基礎(chǔ)上,音頻處理程序能夠調(diào)用基于IOS系統(tǒng)音頻庫的音頻單元,在Android系統(tǒng)電子設(shè)備和IOS系統(tǒng)電子設(shè)備之間通過生產(chǎn)者—消費者進(jìn)程方式傳輸音頻數(shù)據(jù)。
當(dāng)然,Android系統(tǒng)電子設(shè)備和IOS系統(tǒng)電子設(shè)備實現(xiàn)音頻共享,有一個重要的前提條件,就是Android系統(tǒng)電子設(shè)備和IOS系統(tǒng)電子設(shè)備相互連接并能相互傳輸數(shù)據(jù)。根據(jù)現(xiàn)有技術(shù)的報道,Android系統(tǒng)電子設(shè)備和IOS系統(tǒng)電子設(shè)備連接并傳輸數(shù)據(jù),可以通過建立藍(lán)牙通路、接口(例如USB-Lighting接口)通路、網(wǎng)絡(luò)(例如WIFI、通信網(wǎng)絡(luò)等)通路等方式實現(xiàn)。無論采用何種通路,對于操作系統(tǒng)和應(yīng)用而言,都相當(dāng)于建立了socket連接(當(dāng)兩個程序通過一個雙向的通信連接實現(xiàn)數(shù)據(jù)交換時,這個連接的一端稱為一個socket)。Android系統(tǒng)電子設(shè)備和IOS系統(tǒng)電子設(shè)備可以根據(jù)所處的具體環(huán)境,人工設(shè)置或者按照預(yù)先設(shè)定的規(guī)則選擇通路連接方式,基于所選的通路建立socket連接。
根據(jù)以上描述,Android系統(tǒng)電子設(shè)備和IOS系統(tǒng)電子設(shè)備用于實現(xiàn)音頻共享的架構(gòu)圖如圖1所示(圖1為簡化的示意圖)。
建立如圖1所示的架構(gòu)后,Android系統(tǒng)電子設(shè)備和IOS系統(tǒng)電子設(shè)備可以實現(xiàn)音頻共享。所謂音頻共享,包括兩個技術(shù)方案上相互獨立但實際中往往交替甚至同時發(fā)生、關(guān)聯(lián)度極高的過程,即Android系統(tǒng)電子設(shè)備向IOS系統(tǒng)電子設(shè)備發(fā)送音頻數(shù)據(jù)和Android系統(tǒng)電子設(shè)備從IOS系統(tǒng)電子設(shè)備獲取音頻數(shù)據(jù)兩個過程,這兩個過程可以統(tǒng)稱為電子設(shè)備音頻共享方法。
如之前所述,Android系統(tǒng)電子設(shè)備向IOS系統(tǒng)電子設(shè)備發(fā)送音頻數(shù)據(jù)和Android系統(tǒng)電子設(shè)備從IOS系統(tǒng)電子設(shè)備獲取音頻數(shù)據(jù)這兩個過程都可以通過生產(chǎn)者—消費者進(jìn)程方式實現(xiàn)。當(dāng)然,不同過程的具體步驟存在差別。
Android系統(tǒng)電子設(shè)備向IOS系統(tǒng)電子設(shè)備發(fā)送音頻數(shù)據(jù)的流程如圖2所示,包括:
S201:Android系統(tǒng)電子設(shè)備發(fā)送控制指令給IOS系統(tǒng),Android系統(tǒng)向設(shè)定的緩沖區(qū)寫入音頻數(shù)據(jù),音頻數(shù)據(jù)傳輸給IOS系統(tǒng),被基于IOS系統(tǒng)音頻庫的音頻單元消費。
具體說,本步驟中,當(dāng)Android系統(tǒng)電子設(shè)備需要利用IOS系統(tǒng)電子設(shè)備的音頻輸出硬件播放音頻時,Android系統(tǒng)發(fā)送控制指令給IOS系統(tǒng)。這里的控制指令,應(yīng)該作廣義的理解,包括一系列封裝的協(xié)議,其中有數(shù)據(jù)傳輸協(xié)議,數(shù)據(jù)傳輸協(xié)議包含了音頻數(shù)據(jù)的采樣率、聲道數(shù)、采樣深度等信息,也有指令控制協(xié)議等。
Android系統(tǒng)的AudioTrack向設(shè)定的緩沖區(qū)寫入相關(guān)音頻數(shù)據(jù),這些數(shù)據(jù)通過socket傳輸給IOS系統(tǒng),IOS系統(tǒng)的音頻處理程序調(diào)用基于IOS系統(tǒng)音頻庫的音頻單元消費這些數(shù)據(jù)。
S202:基于IOS系統(tǒng)音頻庫的音頻單元對獲得的音頻數(shù)據(jù)進(jìn)行處理,通過IOS系統(tǒng)音頻庫提供的API,使用IOS系統(tǒng)電子設(shè)備的音頻輸出硬件播放。
具體說,本步驟中,基于IOS系統(tǒng)音頻庫的音頻單元對消費的音頻數(shù)據(jù)(即獲得的音頻數(shù)據(jù))進(jìn)行音頻處理,音頻處理程序通過IOS系統(tǒng)音頻庫提供的API(應(yīng)用程序編程接口),使用IOS系統(tǒng)電子設(shè)備的音頻輸出硬件播放處理后的音頻數(shù)據(jù)。
Android系統(tǒng)電子設(shè)備從IOS系統(tǒng)電子設(shè)備獲取音頻數(shù)據(jù)的流程如圖3所示,包括:
S301:Android系統(tǒng)電子設(shè)備發(fā)送控制指令給IOS系統(tǒng)。通過IOS系統(tǒng)音頻庫提供的API獲得IOS系統(tǒng)電子設(shè)備的音頻輸入硬件的音頻數(shù)據(jù)。基于IOS系統(tǒng)音頻庫的音頻單元對獲得的音頻數(shù)據(jù)進(jìn)行處理,寫入Android系統(tǒng)設(shè)定的緩沖區(qū)。
具體說,本步驟中,當(dāng)Android系統(tǒng)電子設(shè)備需要從IOS系統(tǒng)電子設(shè)備獲取音頻數(shù)據(jù)時,Android系統(tǒng)發(fā)送控制指令給IOS系統(tǒng)。IOS系統(tǒng)的音頻處理程序通過IOS系統(tǒng)音頻庫提供的API獲得IOS系統(tǒng)電子設(shè)備的音頻輸入硬件的音頻數(shù)據(jù)。音頻處理程序調(diào)用基于IOS系統(tǒng)音頻庫的音頻單元對獲得的音頻數(shù)據(jù)進(jìn)行音頻處理,處理后的音頻數(shù)據(jù)通過socket寫入Android系統(tǒng)設(shè)定的緩沖區(qū)(該緩沖區(qū)即AudioRecord的緩沖區(qū))。
S302:Android系統(tǒng)消費設(shè)定的緩沖區(qū)的音頻數(shù)據(jù)。
具體說,本步驟中,Android系統(tǒng)的AudioRecord不斷等待并消費設(shè)定的緩沖區(qū)的音頻數(shù)據(jù)。在本步驟完成后或與本步驟同時,Android系統(tǒng)對AudioRecord獲取的音頻數(shù)據(jù)可以進(jìn)行播放等后續(xù)處理。
本領(lǐng)域技術(shù)人員在以上所描述的具體技術(shù)方案的基礎(chǔ)上,完全可以構(gòu)造出其他方案。例如,第一操作系統(tǒng)和第二操作系統(tǒng),可以采用Android系統(tǒng)和IOS系統(tǒng)之外的其他操作系統(tǒng),電子設(shè)備音頻共享方法進(jìn)行相應(yīng)的改變。在此不一一列舉。