一種車(chē)載終端外部音頻接入及音量統(tǒng)一調(diào)節(jié)的方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)一種車(chē)載終端外部音頻接入及音量統(tǒng)一調(diào)節(jié)的方法,其包括:步驟1:在車(chē)載終端的音頻處理模塊中加入音頻通道選擇器,音頻處理模塊包括順次連接的音頻解碼單元和功放單元,該音頻通道選擇器設(shè)于音頻解碼單元和功放單元之間;步驟2:建立設(shè)備控制庫(kù),該設(shè)備控制庫(kù)調(diào)用音頻通道選擇器的驅(qū)動(dòng)提供的接口,完成音頻通道選擇器控制功能,并將設(shè)備控制庫(kù)接入自定義設(shè)備管理框架;該設(shè)備控制庫(kù)接收自定義設(shè)備管理框架發(fā)來(lái)的音量調(diào)節(jié)命令,并對(duì)其進(jìn)行處理。本發(fā)明在Android平臺(tái)實(shí)現(xiàn)的硬件層面上增加了音頻通道選擇器,并提供相應(yīng)的軟件操作接口,從而可以增加自定義的音頻流,同時(shí)統(tǒng)一各音頻流的音量調(diào)節(jié),使用戶在調(diào)節(jié)音量上不易混淆,更易于理解。
【專(zhuān)利說(shuō)明】一種車(chē)載終端外部音頻接入及音量統(tǒng)一調(diào)節(jié)的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種基于Android系統(tǒng)的車(chē)載終端擴(kuò)展外部音頻以及音量統(tǒng)一調(diào)節(jié)的方法。
【背景技術(shù)】
[0002]Android原生平臺(tái)對(duì)整個(gè)系統(tǒng)的音頻流進(jìn)行了類(lèi)型的劃分,并定義了相應(yīng)音頻流的不同音量等級(jí)值。Android共定義了 STREAM_VOICE_CALL (手機(jī)通話音頻流),STREAM,SYSTEM (系統(tǒng)級(jí)音頻流),STREAM_RING (來(lái)電鈴聲及消息警告音頻流),STREAM_MUSIC (音樂(lè)音頻流),STREAM_ALARM (警告音頻流),STREAM_N0TIFICAT10N (通知音頻流),STREAM_BLUET00TH_SC0 (藍(lán)牙連接音頻流),STREAM_SYSTEM_ENFORCED (特定區(qū)域系統(tǒng)級(jí)音頻流),STREAM_DTMF (雙音多頻音頻流),STREAM_TTS (TTS語(yǔ)音播報(bào)音頻流)等10個(gè)音頻流類(lèi)型,同時(shí),其相應(yīng)的音量最大值分別為:5、7、7、15、7、7、15、7、15、15。由于這些音頻流是在Android原生系統(tǒng)中定義的,故稱(chēng)之為Android原生音頻流。同時(shí),各個(gè)生產(chǎn)廠家為了擴(kuò)展系統(tǒng)功能,往往會(huì)加入其它音頻流,例如收音機(jī)、DVD音頻,由于這些音頻是各個(gè)生產(chǎn)廠家自己定義的,故稱(chēng)之為自定義音頻流。但是,如此之多的音頻流及其對(duì)應(yīng)的音量等級(jí)值給某些用戶帶來(lái)了混淆,不易理解,同時(shí),對(duì)開(kāi)發(fā)者而言,如何加入自定義的音頻流以及如何使自定義的音頻流與系統(tǒng)原生的音頻流的音量調(diào)節(jié)統(tǒng)一起來(lái)也是一大困難。
【發(fā)明內(nèi)容】
[0003]因此,針對(duì)上述的問(wèn)題,本發(fā)明提出一種車(chē)載終端外部音頻接入及音量統(tǒng)一調(diào)節(jié)的方法,使自定義的音頻流與系統(tǒng)原生的音頻流的音量調(diào)節(jié)統(tǒng)一起來(lái),從而解決現(xiàn)有技術(shù)之不足。
[0004]為了解決上述技術(shù)問(wèn)題,本發(fā)明從硬件和軟件層面上提出了一種綜合的解決方法。硬件層面上,加入了音頻通道選擇器,將Android原生系統(tǒng)的音頻輸出流接入到音頻通道選擇器的輸入上,同時(shí),當(dāng)有第三方的音頻輸出設(shè)備時(shí),也將該設(shè)備的音頻輸出流接入到音頻通道選擇器的輸入上,并將其定義為自定義的音頻流類(lèi)型,如以上的DVD、FM等,最后將音頻通道選擇器的輸出流接入到功放上,由音頻通道選擇器進(jìn)行音頻通道的切換選擇。
[0005]在軟件層面上,進(jìn)行了兩大方面的改進(jìn):1、封裝了一個(gè)針對(duì)音頻通道選擇器的設(shè)備控制庫(kù),將設(shè)備控制庫(kù)接入自定義設(shè)備管理框架,由自定義設(shè)備管理框架對(duì)上層提供統(tǒng)一的主音量操作接口。2、修改Android原生系統(tǒng)的音頻系統(tǒng)管理框架,主要包括:1)將自定義的音頻流類(lèi)型加入Android原生系統(tǒng);2)統(tǒng)一 Android原生系統(tǒng)各音頻流的音量最大值和默認(rèn)值;3)統(tǒng)一 Android原生系統(tǒng)中音量調(diào)節(jié)的UI顯示層;4)更改音頻系統(tǒng)管理框架中關(guān)于獲取和設(shè)置音量的API接口,使其為調(diào)用相應(yīng)的主音量操作接口。
[0006]具體的,本發(fā)明的一種車(chē)載終端外部音頻接入及音量統(tǒng)一調(diào)節(jié)的方法,包括以下步驟:
步驟1:在車(chē)載終端的音頻處理模塊中加入音頻通道選擇器,音頻處理模塊包括順次連接的音頻解碼單元和功放單元,該音頻通道選擇器設(shè)于音頻解碼單元和功放單元之間;音頻解碼單元輸出的信號(hào)包括Android原生平臺(tái)音頻流類(lèi)型和自定義音頻流類(lèi)型的信號(hào),自定義音頻流類(lèi)型的信號(hào)來(lái)源于自定義音頻輸出設(shè)備,其包括DVD音頻信號(hào)、FM音頻信號(hào);該音頻通道選擇器包括音頻輸入選擇模塊、音效控制模塊和音量控制模塊,其控制內(nèi)部的音頻輸入選擇模塊切換到音頻解碼單元的某一路輸出上,通過(guò)音效控制模塊進(jìn)行音效處理,最后輸出到功放單元;
該音頻通道選擇器實(shí)現(xiàn)音頻輸入通道選擇、音效設(shè)置和音量控制功能,將Android原生系統(tǒng)的音頻輸出流以及自定義音頻輸出設(shè)備(如果有自定義音頻輸出設(shè)備的話)的音頻輸出流接入該音頻通道選擇器,并為其自定義音頻流類(lèi)型;
步驟2:建立設(shè)備控制庫(kù),該設(shè)備控制庫(kù)調(diào)用音頻通道選擇器的驅(qū)動(dòng)提供的接口,完成音頻通道選擇器控制功能,并將設(shè)備控制庫(kù)接入自定義設(shè)備管理框架;該設(shè)備控制庫(kù)接收自定義設(shè)備管理框架發(fā)來(lái)的音量調(diào)節(jié)命令,并對(duì)其進(jìn)行如下處理:
如果是物理按鍵進(jìn)行音量調(diào)節(jié),自定義設(shè)備管理框架則檢測(cè)到按鍵操作,不管當(dāng)前處于什么音頻流類(lèi)型,都是在當(dāng)前音量基礎(chǔ)上進(jìn)行增減,然后直接設(shè)置音頻通道選擇器的輸出音量;
如果是調(diào)用Android系統(tǒng)的音量調(diào)節(jié)接口進(jìn)行音量調(diào)節(jié),在進(jìn)行音量調(diào)節(jié)時(shí),先通過(guò)自定義框架的接口獲取當(dāng)前音量,在該音量基礎(chǔ)上進(jìn)行增減進(jìn)而獲得要設(shè)置的音量值,然后通過(guò)Android系統(tǒng)的音量調(diào)節(jié)接口進(jìn)行設(shè)置。在Android系統(tǒng)的音量調(diào)節(jié)接口中,其處理過(guò)程也被修改為忽略音頻流類(lèi)型,直接設(shè)置音頻通道選擇器的輸出音量;
其中,所述自定義設(shè)備管理框架對(duì)上層提供統(tǒng)一的主音量操作接口,該自定義設(shè)備管理框架包括依次設(shè)置的設(shè)備管理服務(wù)單元、控制命令字解析單元、設(shè)備控制庫(kù)以及設(shè)備驅(qū)動(dòng),其中,設(shè)備管理服務(wù)單元,對(duì)外提供操作接口,并將接口調(diào)用轉(zhuǎn)換為控制命令字,通過(guò)socket傳輸?shù)娇刂泼钭纸馕鰡卧?控制命令字解析單元,解析控制命令字,轉(zhuǎn)換為設(shè)備控制庫(kù)的接口調(diào)用;設(shè)備控制庫(kù),用于調(diào)用內(nèi)核驅(qū)動(dòng)提供的接口。也即,該自定義設(shè)備管理框架執(zhí)行如下過(guò)程:接收外界傳送來(lái)的命令,并將該命令轉(zhuǎn)換為控制命令字,然后將該控制命令字進(jìn)行解析,并轉(zhuǎn)換為設(shè)備控制庫(kù)可調(diào)用的格式以備調(diào)用。
[0007]該發(fā)明技術(shù)的有益效果是:在Android平臺(tái)實(shí)現(xiàn)的硬件層面上增加了音頻通道選擇器,并提供相應(yīng)的軟件操作接口,從而可以增加自定義的音頻流,同時(shí)統(tǒng)一了各音頻流的音量調(diào)節(jié),使用戶在調(diào)節(jié)音量上不易混淆,更易于理解。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0008]圖1是本發(fā)明的系統(tǒng)原理框圖;
圖2是音頻通道選擇器的硬件結(jié)構(gòu)圖;
圖3是本發(fā)明中處理外部音頻接入和音量調(diào)節(jié)的處理流程;
圖4是自定義設(shè)備管理框架結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0009]現(xiàn)結(jié)合附圖和【具體實(shí)施方式】對(duì)本發(fā)明進(jìn)一步說(shuō)明。
[0010]圖1是本發(fā)明的工作原理框圖,本發(fā)明的系統(tǒng)包括音頻解碼單元、Android音頻系統(tǒng)管理框架(原有Android中的管理框架)、自定義設(shè)備管理框架、音頻通道選擇器以及系統(tǒng)功放。
[0011]Android音頻系統(tǒng)管理框架對(duì)外提供音頻操作相關(guān),內(nèi)部調(diào)用自定義設(shè)備管理框架的操作接口,控制音頻通道選擇器。
[0012]自定義設(shè)備管理框架對(duì)Android音頻系統(tǒng)管理框架提供音頻流切換、音量設(shè)置接口,發(fā)送命令字直接調(diào)用音頻通道選擇器。
[0013]音頻通道選擇器負(fù)責(zé)物理上連接各種音頻輸入,進(jìn)行轉(zhuǎn)換之后將音頻輸出功放;音頻通道選擇器可以接受自定義設(shè)備管理框架的控制。一般的,如圖2所示,該音頻通道選擇器包括音頻輸入選擇模塊、音效控制模塊、音量調(diào)節(jié)模塊(或稱(chēng)音量控制模塊),共同完成音頻輸入通道選擇、音效設(shè)置和音量控制功能。該音頻通道選擇器可由市場(chǎng)上購(gòu)買(mǎi)現(xiàn)有的芯片獲得,也可由自己制作,只要能實(shí)現(xiàn)音頻輸入通道選擇、音效設(shè)置和音量控制等功能即可。
[0014]系統(tǒng)功放負(fù)責(zé)音頻的播放。
[0015]圖3是本發(fā)明中處理外部音頻接入和音量調(diào)節(jié)的處理流程,顯示了系統(tǒng)從音量調(diào)節(jié)按鍵監(jiān)聽(tīng)、音量設(shè)置、音量調(diào)整結(jié)果顯示整個(gè)工作流程,包括如下步驟:
步驟A:建立自定義的設(shè)備控制庫(kù),其具體包括如下過(guò)程:
步驟Al:封裝一個(gè)針對(duì)音頻通道選擇器的設(shè)備控制庫(kù);
步驟A2:將設(shè)備控制庫(kù)接入設(shè)備管理框架,由設(shè)備管理框架對(duì)上層提供統(tǒng)一的輸出主音量操作接口 ;如圖4所示。該設(shè)備管理框架由上到下包括設(shè)備管理服務(wù)層(對(duì)外提供操作接口,并將接口調(diào)用轉(zhuǎn)換為控制命令字,通過(guò)socket傳輸?shù)娇刂泼钭纸馕鰧?、控制命令字解析層(解析控制命令字,轉(zhuǎn)換為設(shè)備控制庫(kù)的接口調(diào)用)、設(shè)備控制庫(kù)(調(diào)用內(nèi)核驅(qū)動(dòng)提供的接口)、設(shè)備驅(qū)動(dòng)、以及底層支撐上述模塊的硬件。自定義設(shè)備管理框架對(duì)上層提供統(tǒng)一的主音量操作接口;
步驟B:修改Android原生系統(tǒng)的音頻系統(tǒng)管理框架,包括如下步驟:
步驟B1:將自定義的音頻流類(lèi)型加入Android原生系統(tǒng);
步驟B2:統(tǒng)一 Android原生系統(tǒng)各音頻流的音量最大值和默認(rèn)值;
步驟B3:統(tǒng)一 Android原生系統(tǒng)中音量調(diào)節(jié)的UI顯示層;
步驟B4:更改音頻系統(tǒng)管理框架中關(guān)于獲取和設(shè)置音量的API接口,使其為調(diào)用相應(yīng)的主音量操作接口;
步驟C:監(jiān)聽(tīng)音量調(diào)節(jié)按鍵,獲取音量調(diào)節(jié)操作;
步驟D:調(diào)用Android音量設(shè)置接口 ;
步驟E:調(diào)用設(shè)備控制庫(kù),獲取原來(lái)的輸出主音量;
步驟F:根據(jù)用戶操作,增加或者減少當(dāng)前音量并保存;
步驟G:調(diào)用設(shè)備管理庫(kù),控制設(shè)置音頻通道選擇器的輸出主音量。
[0016]綜上所述,采用本發(fā)明的方法,通過(guò)在硬件層面上增加音頻通道選擇器,并在Android系統(tǒng)框架中提供相應(yīng)的軟件操作接口,可以增加自定義的音頻流,同時(shí)統(tǒng)一了各音頻流的音量調(diào)節(jié),使用戶在調(diào)節(jié)音量上不易混淆,更易于理解。
[0017]盡管結(jié)合優(yōu)選實(shí)施方案具體展示和介紹了本發(fā)明,但所屬領(lǐng)域的技術(shù)人員應(yīng)該明白,在不脫離所附權(quán)利要求書(shū)所限定的本發(fā)明的精神和范圍內(nèi),在形式上和細(xì)節(jié)上可以對(duì)本發(fā)明做出各種變化,均為本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1.一種車(chē)載終端外部音頻接入及音量統(tǒng)一調(diào)節(jié)的方法,包括以下步驟: 步驟1:在車(chē)載終端的音頻處理模塊中加入音頻通道選擇器,音頻處理模塊包括順次連接的音頻解碼單元和功放單元,該音頻通道選擇器設(shè)于音頻解碼單元和功放單元之間;音頻解碼單元輸出的信號(hào)包括Android原生平臺(tái)音頻流類(lèi)型和自定義音頻流類(lèi)型的信號(hào),自定義音頻流類(lèi)型的信號(hào)來(lái)源于自定義音頻輸出設(shè)備,其包括DVD音頻信號(hào)、FM音頻信號(hào);該音頻通道選擇器包括音頻輸入選擇模塊、音效控制模塊和音量控制模塊,其控制內(nèi)部的音頻輸入選擇模塊切換到音頻解碼單元的某一路輸出上,通過(guò)音效控制模塊進(jìn)行音效處理,最后輸出到功放單元; 步驟2:建立設(shè)備控制庫(kù),該設(shè)備控制庫(kù)調(diào)用音頻通道選擇器的驅(qū)動(dòng)提供的接口,完成音頻通道選擇器控制功能,并將設(shè)備控制庫(kù)接入自定義設(shè)備管理框架;該設(shè)備控制庫(kù)接收自定義設(shè)備管理框架發(fā)來(lái)的音量調(diào)節(jié)命令,并對(duì)其進(jìn)行如下處理: 如果是物理按鍵進(jìn)行音量調(diào)節(jié),自定義設(shè)備管理框架則檢測(cè)到按鍵操作,不管當(dāng)前處于什么音頻流類(lèi)型,都是在當(dāng)前音量基礎(chǔ)上進(jìn)行增減,然后直接設(shè)置音頻通道選擇器的輸出音量; 如果是調(diào)用Android系統(tǒng)的音量調(diào)節(jié)接口進(jìn)行音量調(diào)節(jié),在進(jìn)行音量調(diào)節(jié)時(shí),先通過(guò)自定義框架的接口獲取當(dāng)前音量,在該音量基礎(chǔ)上進(jìn)行增減獲得要設(shè)置的音量值,然后通過(guò)Android系統(tǒng)的音量調(diào)節(jié)接口進(jìn)行設(shè)置。
2.根據(jù)權(quán)利要求1所述的車(chē)載終端外部音頻接入及音量統(tǒng)一調(diào)節(jié)的方法,其特征在于:所述步驟2中的自定義設(shè)備管理框架對(duì)上層提供統(tǒng)一的主音量操作接口,該自定義設(shè)備管理框架包括依次設(shè)置的設(shè)備管理服務(wù)單元、控制命令字解析單元、設(shè)備控制庫(kù)以及設(shè)備驅(qū)動(dòng),其中,設(shè)備管理服務(wù)單元,對(duì)外提供操作接口,并將接口調(diào)用轉(zhuǎn)換為控制命令字,通過(guò)socket傳輸?shù)娇刂泼钭纸馕鰡卧?;控制命令字解析單元,解析控制命令字,轉(zhuǎn)換為設(shè)備控制庫(kù)的接口調(diào)用;設(shè)備控制庫(kù),用于調(diào)用內(nèi)核驅(qū)動(dòng)提供的接口。
【文檔編號(hào)】G06F9/44GK103680564SQ201310650278
【公開(kāi)日】2014年3月26日 申請(qǐng)日期:2013年12月6日 優(yōu)先權(quán)日:2013年12月6日
【發(fā)明者】呂瑞明, 鐘可華, 李琦, 魯林華, 李培明 申請(qǐng)人:廈門(mén)雅迅網(wǎng)絡(luò)股份有限公司