一種錄制手機輸出音頻的方法、系統(tǒng)及手機的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及智能終端領(lǐng)域,尤其涉及的是一種錄制手機輸出音頻的方法、系統(tǒng)及手機。
【背景技術(shù)】
[0002]目前安卓操作系統(tǒng)的手機提供的錄音功能只有通話錄音或者通過麥克風錄音的方式,對于手機本身發(fā)出的聲音并沒有單獨的錄音功能,當用戶需要獲取其本身發(fā)出的聲音時,只能通過麥克風來捕捉手機聲音來進行錄制,但是由于通過麥克風捕捉的手機聲音含有外界的環(huán)境噪音,因此錄下來的聲音含有很多雜音,尤其在環(huán)境比較嘈雜的情況下,錄制出的聲音效果更差,不能滿足用戶想要獲取清晰手機輸出音頻的需要。
[0003]因此,現(xiàn)有技術(shù)有待于進一步的改進。
【發(fā)明內(nèi)容】
[0004]鑒于上述現(xiàn)有技術(shù)中的不足之處,本發(fā)明的目的在于為用戶提供一種錄制手機輸出音頻的方法、系統(tǒng)及手機,克服現(xiàn)有技術(shù)中手機不能錄制手機輸出的音頻或者錄制出的手機輸出音頻不清晰的缺陷。
[0005]本發(fā)明解決技術(shù)問題所采用的技術(shù)方案如下:
一種錄制手機輸出音頻的方法,其中,包括:
A、當接收到開始錄制手機輸出音頻的指令后,在輸出音頻輸入到手機的播放模塊之前,捕捉手機輸出的音頻數(shù)據(jù),并將所述音頻數(shù)據(jù)存儲到緩存中;
B、判斷存儲到緩存的音頻數(shù)據(jù)是否與預(yù)定義的音頻數(shù)據(jù)類型相匹配,若否,則執(zhí)行步驟C,否則執(zhí)行步驟D;
C、調(diào)整緩存中音頻數(shù)據(jù)的采樣率和聲道數(shù),使其與預(yù)定義的音頻數(shù)據(jù)類型相匹配,然后執(zhí)彳丁步驟D;
D、調(diào)用預(yù)先設(shè)置的音頻輸入接口從緩存中獲取音頻數(shù)據(jù)進行錄制。
[0006]所述錄制手機輸出音頻的方法,其中,所述步驟A之前還包括:
A01、增加一個用于從緩存中獲取音頻數(shù)據(jù)的調(diào)用接口;
A02、將手機音頻輸出的錄音類型定義為手機輸出音頻錄制文件。
[0007]所述錄制手機輸出音頻的方法,其中,所述步驟D還包括:
D1、獲取到音頻數(shù)據(jù)進行錄音后,將設(shè)置得到的音頻文件類型為所述手機輸出音頻錄制文件類型。
[0008]所述錄制手機輸出音頻的方法,其中,所述步驟B之前還包括:
B0、判斷緩存中是否含有音頻數(shù)據(jù),若有,則執(zhí)行步驟B,否則以全O的音頻數(shù)據(jù)代替。
[0009]所述錄制手機輸出音頻的方法,其中,所述步驟D中還包括:
D2、當錄音結(jié)束后,清空緩存中的音頻數(shù)據(jù)。
[00?0] —種錄制手機輸出首頻的系統(tǒng),其中,包括: 音頻存儲模塊,用于當接收到開始錄制手機輸出音頻的指令后,在輸出音頻輸入到手機的播放模塊之前,捕捉手機輸出的音頻數(shù)據(jù),并將所述音頻數(shù)據(jù)存儲到緩存中;
類型判斷模塊、用于判斷存儲到緩存的音頻數(shù)據(jù)是否與預(yù)定義的音頻數(shù)據(jù)類型相匹配;
類型調(diào)整模塊,用于調(diào)整緩存中音頻數(shù)據(jù)的采樣率和聲道數(shù),使其與預(yù)定義的音頻數(shù)據(jù)類型相匹配;
音頻錄制模塊,用于調(diào)用預(yù)先設(shè)置的音頻輸入接口從緩存中獲取音頻數(shù)據(jù)進行錄制。
[0011]所述錄制手機輸出音頻的系統(tǒng),其中,所述系統(tǒng)還包括:
增加接口模塊,用于增加一個用于從緩存內(nèi)獲取音頻數(shù)據(jù)的調(diào)用接口 ;
類型定義模塊,用于將手機音頻輸出的錄音類型定義為手機輸出音頻錄制文件。
[0012]所述錄制手機輸出音頻的系統(tǒng),其中,所述音頻錄制模塊還包括:
類型設(shè)置單元,用于獲取到音頻數(shù)據(jù)進行錄音后,將設(shè)置得到的音頻文件類型為所述手機輸出音頻錄制文件類型。
[0013]所述錄制手機輸出音頻的系統(tǒng),其中,所述系統(tǒng)還包括:
數(shù)據(jù)填補模塊,用于判斷緩存中是否含有音頻數(shù)據(jù),若有,則進行存儲到緩存的音頻數(shù)據(jù)是否與預(yù)定義的音頻數(shù)據(jù)類型相匹配判斷,否則以全O的音頻數(shù)據(jù)代替。
[0014]—種手機,其中,包括:所述的錄制手機輸出音頻的系統(tǒng)。
[0015]有益效果,本發(fā)明提供了一種錄制手機輸出音頻的方法、系統(tǒng)及手機,通過當接收到開始錄制手機輸出音頻的指令后,在獲輸出音頻輸入到手機的播放模塊之前,捕捉手機輸出的音頻數(shù)據(jù),并將所述音頻數(shù)據(jù)存儲到緩存中,判斷存儲到緩存的音頻數(shù)據(jù)是否與預(yù)定義的音頻數(shù)據(jù)類型相匹配,若匹配則調(diào)用預(yù)先設(shè)置的音頻輸入接口從緩存中獲取音頻數(shù)據(jù)進行錄制,從而實現(xiàn)了手機自身對其輸出音頻的錄制,由于手機音頻在其未輸出到揚聲器之前被捕獲,因此獲取的手機輸出音頻清晰,能滿足用戶對手機輸出音頻錄制的清晰度的需求。
【附圖說明】
[0016]圖1是本發(fā)明的一種錄制手機輸出音頻的方法的步驟流程圖。
[0017]圖2是本發(fā)明的一種錄制手機輸出音頻的方法的具體應(yīng)用實施例的步驟流程圖。
[0018]圖3是本發(fā)明的一種錄制手機輸出音頻的系統(tǒng)原理結(jié)構(gòu)示意圖。
【具體實施方式】
[0019]為使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚、明確,以下參照附圖并舉實施例對本發(fā)明進一步詳細說明。應(yīng)當理解,此處所描述的具體實施例僅僅用于解釋本發(fā)明,并不用于限定本發(fā)明。
[0020]由于手機中播放的聲音都是通過硬件層發(fā)送到底層音頻播放設(shè)備上進行播放的,因此在進行為了獲取清晰地手機輸出音頻,需要當手機輸出音頻輸出到底層音頻播放設(shè)備之前捕獲輸出音頻數(shù)據(jù),并將捕獲到的輸出音頻數(shù)據(jù)進行錄音,從而才能獲取到清晰地輸出音頻數(shù)據(jù)。
[0021]基于上述思路,本發(fā)明提供了一種錄制手機輸出音頻的方法,如圖1所示,所述方法包括:
S1、當接收到開始錄制手機輸出音頻的指令后,在輸出音頻輸入到手機的播放模塊之前,捕捉手機輸出的音頻數(shù)據(jù),并將所述音頻數(shù)據(jù)存儲到緩存中。
[0022]當接收到用戶發(fā)出的開始錄制手機輸出音頻的指令后,在手機輸出音頻未傳輸?shù)降讓右纛l輸出設(shè)備之前,進行捕獲,也即在手機自身的硬件層將輸出音頻傳輸?shù)綋P聲器之前獲取手機將輸出的音頻數(shù)據(jù),并將所述音頻數(shù)據(jù)存儲到緩存中,如果緩存已滿,就覆蓋最早存入的數(shù)據(jù)。
[0023]S2、判斷存儲到緩存的音頻數(shù)據(jù)是否預(yù)定義的音頻數(shù)據(jù)類型相匹配,若否,則執(zhí)行步驟S3,否則執(zhí)行步驟S4。
[0024]判斷存儲到緩存中的音頻數(shù)據(jù)的格式是否為與預(yù)先定義的手機輸出音頻數(shù)據(jù)格式相匹配,若不匹配,則可能無法實現(xiàn)音頻數(shù)據(jù)的順利錄制,因此在本步驟中需要通過其采樣率和聲道數(shù)進行數(shù)據(jù)類型格式的判斷,比如數(shù)據(jù)的采樣率為48k,聲道數(shù)為2,而預(yù)定義的手機輸出音頻數(shù)據(jù)格式也同為48k、2聲道的,則該音頻數(shù)據(jù)為本次錄音想要的錄制的音頻數(shù)據(jù)類型,執(zhí)行步驟S4,否則執(zhí)行步驟S3。
[0025]S3、調(diào)整緩存中音頻數(shù)據(jù)的采樣率和聲道數(shù),使其與預(yù)定義的音頻數(shù)據(jù)類型相匹配,然后執(zhí)行步驟S4。
[0026]可以通過調(diào)整采樣率,將聲道合并或者拆分,將緩存中的音頻數(shù)據(jù)類型調(diào)整為與預(yù)定義的音頻數(shù)據(jù)類型相匹配。所述采樣率可以通過獲取輸出音頻的比特率和聲道數(shù)計算得到。
[0027]具體的,為了實現(xiàn)手機應(yīng)用層對手機輸出音頻的順利錄制,所述步驟SI之前還包括:
S01、增加一個用于從緩存內(nèi)獲取音頻數(shù)據(jù)的調(diào)用接口;用于當判斷出緩存中存儲的數(shù)據(jù)為手機硬件層發(fā)出的雙聲道數(shù)字音頻數(shù)據(jù)時,則調(diào)用該接口,實現(xiàn)音頻數(shù)據(jù)在應(yīng)用層的錄制。
[0028]S02、將手機音頻輸出的錄音類型定義為手機輸出音頻錄制文件。
[0029]為了實現(xiàn)應(yīng)用層中錄制音頻的順利保存,預(yù)先為錄制的手機輸出視頻定義錄音類型,具體的錄音類型可以通過用戶自定義實現(xiàn)。為了易于識別,將其定義為手機輸出音頻文件。
[0030]由于在之前對錄音文件的類型進行了定義,因此在本步驟中還包括:
S31、獲取到音頻數(shù)據(jù)進行錄音后,將設(shè)置得到的音頻文件類型為所述手機輸出音頻錄制文件類型。
[0031]獲取到輸出音頻數(shù)據(jù),對其進行錄音后,將所述錄音文件的錄音類型設(shè)置為之前定義的手機輸出音頻錄制文件類型。
[0032]S4、調(diào)用預(yù)先設(shè)置的音頻輸入接口從緩存中獲取音頻數(shù)據(jù)進行錄制。
[0033]通過在軟件層調(diào)用接口,將緩存中存儲的音頻數(shù)據(jù)上報到應(yīng)用層進行錄音,從而實現(xiàn)手機輸出音頻的錄制。
[0034]為了實現(xiàn)錄制出的手機輸出音頻的連續(xù)性,在所述步驟S2還包括:
S21、判斷緩存中是否含有音頻數(shù)據(jù),若有,則進行所述音頻數(shù)據(jù)是否為雙聲道音頻數(shù)據(jù)的判斷,否則以全O的音頻數(shù)據(jù)代替。
[0035]先判斷緩存中是否含有音頻數(shù)據(jù),若有,則進行音頻數(shù)據(jù)是否為所需類型的判斷,若緩存中不含有音頻數(shù)據(jù),則全部以O(shè)數(shù)據(jù)代替音頻數(shù)據(jù),輸入到應(yīng)用層,保證錄制音頻的連續(xù)性。
[0036]為了防止錄制音頻的重復,所述步驟S3中還包括:
S32、當錄音結(jié)束后,清空緩存中的音頻數(shù)據(jù)。
[0037]為了對上述方法進行更加相信的說明,下面以其具體應(yīng)用實施例為例對其做進一步的說明。
[0038]如圖2所示,在具體應(yīng)用時,首先創(chuàng)建錄音對象的類型,該錄音文件的類型設(shè)置為手機輸出音頻文件,其文件后綴可以定義為:PLAYBACK,則錄音文件的名稱可以保存成MediaRecorder.Aud1Source.PLAYBACK。將定義好的錄音文件名稱及文件后綴等信息保存到應(yīng)用層,則應(yīng)用層便可以按照定義好的錄音類型對錄制的手機輸出音頻進行保存。在具體應(yīng)用中,可以先創(chuàng)建一個定義好的錄音類型,若創(chuàng)建的錄音類型為PLAYBACK錄音的文件類型,則開始錄音,通知軟件應(yīng)用層開始將音頻數(shù)據(jù)存入到緩存中,以便從緩存中獲取音頻數(shù)據(jù)進行錄音,因此在下一步時,便調(diào)用接口從緩存中讀取音頻數(shù)據(jù),并將讀取的音頻數(shù)據(jù)上報給應(yīng)用層,在應(yīng)用層中進行錄制。當音頻文件錄制結(jié)束,則結(jié)束錄音,并清除緩存,為下一次進行手機輸出音頻注意好準備。
[0039]在上述方法的基礎(chǔ)上,本發(fā)明還提供了一種錄制手機輸出音頻的系統(tǒng),如圖3所示,包括:
音頻存儲模塊110,用于當接收到開始錄制手機輸出音頻的指令后,在輸出音頻輸入到手機的播放模塊之前,捕捉手機輸出的音頻數(shù)據(jù),并將所述音頻數(shù)據(jù)存儲到緩存中;
類型判斷模塊120、用于判斷存儲到緩存的音頻數(shù)據(jù)是否與預(yù)定義的音頻數(shù)據(jù)類型相匹配;
類型調(diào)整模塊130,用于調(diào)整緩存中音頻數(shù)據(jù)的采樣率和聲道數(shù),使其與預(yù)定義的音頻數(shù)據(jù)類型相匹配;
音頻錄制模塊140,用于調(diào)用預(yù)先設(shè)置的音頻輸入接口從緩存中獲取音頻數(shù)據(jù)進行錄制。
[0040]所述系統(tǒng)還包括:
增加接口模塊,用于增加一個用于從緩存內(nèi)獲取音頻數(shù)據(jù)的調(diào)用接口 ;
類型定義模塊,用于將手機音頻輸出的錄音類型定義為手機輸出音頻錄制文件。
[0041 ]所述首頻錄制1?塊還包括:
類型設(shè)置單元,用于獲取到音頻數(shù)據(jù)進行錄音后,將設(shè)置得到的音頻文件類型為所述手機輸出音頻錄制文件類型。
[0042]所述系統(tǒng)還包括:
數(shù)據(jù)填補模塊,用于判斷緩存中是否含有音頻數(shù)據(jù),若有,則進行存儲到緩存的音頻數(shù)據(jù)是否與預(yù)定義的音頻數(shù)據(jù)類型相匹配判斷,否則以全O的音頻數(shù)據(jù)代替。
[0043]—種手機,其中,包括:所述的錄制手機輸出音頻的系統(tǒng)。
[0044]具體的,為了實現(xiàn)本發(fā)明所述的方法及系統(tǒng)可以通過以下程序