專利名稱:一種手機跨平臺語言傳輸解碼方法
技術領域:
本發(fā)明涉及手機平臺文件格式領域,特別涉及蘋果的ios平臺與Andriod平臺之間進行語音傳輸?shù)臄?shù)據(jù)解碼問題,具體的就是ー種在ios平臺上將amr格式的文件轉換成wav格式的文件,供ios平臺上的播放器重放。
背景技術:
隨著移動互聯(lián)網(wǎng)的發(fā)展,人與人的距離越來越近,交流的方式不僅僅局限于文字和圖片,直接通過聲音傳遞信息的需求越來越普遍。目前,智能手機被ios和Andriod兩大平臺長期占據(jù)著,蘋果iOS是由蘋果公司開發(fā)的手持設備操作系統(tǒng)。iOS與蘋果的Mac
OSX操作系統(tǒng)一祥,iOS已經占據(jù)了全球智能手機系統(tǒng)市場份額的30%,在美國的市場占有率為43%。Android是ー種以Linux為基礎的開放源代碼操作系統(tǒng),主要使用于便攜設備。2011年第一季度,Android在全球的市場份額首次超過塞班系統(tǒng),躍居全球第一。2012年2月數(shù)據(jù),Android占據(jù)全球智能手機操作系統(tǒng)市場52. 5%的份額,中國市場占有率為 68. 4%。Andriod 的 MediaRecorder 只支持 amr, wav, acc,其中 amr,全稱是AdaptiveMulti-Rate,自適應多速率,是ー種音頻編碼文件格式,專用于有效地壓縮語音頻率。WAV為微軟公司(Microsoft)開發(fā)的一種聲音文件格式,它符合RIFF (Resource InterchangeFile Format)文件規(guī)范,用于保存Windows平臺的音頻信息資源,被Windows平臺及其應用程序所廣泛支持,該格式也支持MSADPCM,CCITT A LAW等多種壓縮運算法,支持多種音頻數(shù)字,取樣頻率和聲道,標準格式化的WAV文件和⑶格式一祥,也是44. IK的取樣頻率,16位量化數(shù)字,因此在聲音文件質量和⑶相差無幾! WAV打開工具是WINDOWS的媒體播放器。而ios4. 3之后不再支持回放amr格式的音頻,但wav格式的音頻文件過大不便于網(wǎng)絡傳輸,而amr由于壓縮比比較大,雖然相對其他的壓縮格式質量一般,但是音頻文件很小,有利于傳輸,另外,amr格式的數(shù)據(jù)人聲,通話,效果還是很不錯的,所以主要用于移動設備的音頻。目前,類似的應用主要是使用第三方的庫或者是通過服務器端實現(xiàn)解碼,前者的可擴展性差,后者無疑會増加服務器的工作量,影響響應速度。因此必須找到ー個在客戶端就能實現(xiàn)的短小精干的方式進行解碼。
發(fā)明內容
為解決ios在ios4. 3之后不再支持回放amr格式的音頻所帶來的不便。本發(fā)明提供一種手機跨平臺語言傳輸解碼方法,在ios平臺客戶端實現(xiàn)音頻amr格式解碼成wav格式。
本發(fā)明為了完成其技術目的所采用的技術方案是一種手機跨平臺語言傳輸解碼方法,ios客戶端接收到Andorid客戶端amr格式音頻文件,并將amr格式音頻文件轉換成生成wav格式的音頻文件,然后,在ios平臺上通過播放器重放wav格式的音頻文件。進ー步的,上述的手機跨平臺語言傳輸解碼方法中在ios平臺客戶端上將amr格式音頻文件轉換成■格式的音頻文件包括以下步驟A、讀取amr格式音頻文件中標準幀,根據(jù)標準幀幀關計算標準幀的大??;
B、創(chuàng)建并初始化ー個wave格式的音頻文件;
C、讀取amr格式音頻文件中其它幀;
D、判斷這些幀是否為壞幀,如果是壞幀,則丟棄,否則轉向步驟E;
E、讀取該幀的音頻數(shù)據(jù)塊,并將該音頻數(shù)據(jù)塊轉換成PCM數(shù)據(jù),根據(jù)wave格式的音頻文件的要求生成幀頭,形成wave格式的音頻文件的數(shù)據(jù)幀,依次寫入到步驟B中創(chuàng)建的wave格式的音頻文件中。進ー步的,上述的手機跨平臺語言傳輸解碼方法中步驟D中壞幀的判斷是根據(jù)被判斷的幀是否與標準幀大小一致,如果不一致則為壞幀。
本發(fā)明中,ios客戶端接收到Andorid客戶端amr格式音頻數(shù)據(jù),調用解碼方法,返回wav格式音頻數(shù)據(jù),實現(xiàn)ios客戶端和Andriod客戶端之間音頻的傳輸。下面通過結合具體實施例和附圖對本發(fā)明進行進一步的說明。
附圖I是本發(fā)明流程圖。
具體實施例方式如圖I所示,本實施例是ー種手機跨平臺語言傳輸解碼方法,解決ios平臺的客戶端接收由Andorid客戶端amr格式音頻文件,并進行重放的任務。在ios客戶端接收到Andorid客戶端amr格式音頻文件,并將amr格式音頻文件轉換成生成wav格式的音頻文件,然后,在ios平臺上通過播放器重放wav格式的音頻文件,包括以下步驟
A、讀取amr格式音頻文件中標準幀,根據(jù)標準幀幀頭計算標準幀的大??;
B、創(chuàng)建并初始化ー個wave格式的音頻文件;
C、讀取amr格式音頻文件中其它幀;
D、判斷這些幀是否與標準幀大小一致,如果不一致則為壞幀,則丟棄,否則轉向步驟
E ;
E、讀取該幀的音頻數(shù)據(jù)塊,并將該音頻數(shù)據(jù)塊轉換成PCM數(shù)據(jù),根據(jù)wave格式的音頻文件的要求生成幀頭,形成wave格式的音頻文件的數(shù)據(jù)幀,依次寫入到步驟B中創(chuàng)建的wave格式的音頻文件中。本實施例首先通過幀讀取算法,讀取amr數(shù)據(jù),因為可能存在異常幀,所以不一定所有的語音幀大小一致,對于跟正常幀大小不一致的,或者幀頭跟正常幀頭不一致的,就不交給解碼器,直接拋棄該壞巾貞。交給解碼器后先創(chuàng)建并初始化ー個wave文件,然后讀取amr數(shù)據(jù)的第一幀作為參考幀,解碼ー個amr音頻幀成為PCM數(shù)據(jù),逐幀解碼amr并寫到wave文件里面,最后重寫wave文件頭,打包成為wav格式的音頻數(shù)據(jù)。本實施例是根據(jù)AMR數(shù)據(jù)與wav格式的音頻數(shù)據(jù)的各自特點而將AMR數(shù)據(jù)轉換成wav格式的音頻數(shù)據(jù)。AMR全稱Adaptive Multi-Rate,自適應多速率編碼,主要用于移動設備的音頻,壓縮比比較大,但相對其他的壓縮格式質量比較差,由于多用于人聲,通話,效果還是很不錯的。AMR:又稱為AMR-NB,相對于WB而言,語音帶寬范圍300 — 3400Hz, 8KHz抽樣。AMR有以下一些編碼方式
Mode O - AMR 4.75 - Encodes at 4. 75kbit/sMode I - AMR 5. 15 - Encodes at 5.15kbit/sMode 2 - AMR 5. 9 - Encodes at 5. 9kbit/sMode 3 - AMR 6. 7 - Encodes at 6.7kbit/sMode 4 - AMR 7. 4 - Encodes at 7. 4kbit/s Mode 5 - AMR 7. 95 - Encodes at 7. 95kbit/sMode 6 - AMR 10. 2 - Encodes at 10. 2kbit/sMode 7 - AMR 12.2 - Encodes at 12. 2kbit/s8 15位一些noise frames和保留位的定義。每種格式對應的幀的大小如下CMR Mode Frame size (bytes)
0AMR4. 75 13
1AMR 5. 15 14
2AMR 5. 9 16
3AMR 6. 7 18
4AMR 7. 4 20
5AMR 7. 95 21
6AMR 10. 2 27
7AMRl2. 2 32
WAVE文件數(shù)據(jù)塊包含以脈沖編碼調制(PCM)格式表示的樣本。WAVE文件是由樣本組織而成的。在單聲道WAVE文件中,聲道O代表左聲道,聲道I代表右聲道。在多聲道WAVE文件中,樣本是交替出現(xiàn)的。WAVE文件的每個樣本值包含在ー個整數(shù)i中,i的長度為容納指定樣本長度所需的最小字節(jié)數(shù)。首先存儲低有效字節(jié),表示樣本幅度的位放在i的高有效位上,剩下的位置為0,這樣8位和16位的PCM波形樣本的數(shù)據(jù)格式。WAVE文件作為多媒體中使用的聲波文件格式之一,它是以RIFF格式為標準的。RIFF 是英文 Resource Interchange File Format 的縮寫,姆個 WAVE 文件的頭四個字節(jié)便是“RIFF”。WAVE文件是由若干個Chunk組成的。按照在文件中的出現(xiàn)位置包括RIFF WAVE Chunk, Format Chunk, Fact Chunk (可選),Data Chunk。
權利要求
1.一種手機跨平臺語言傳輸解碼方法,其特征在于ios客戶端接收到Andorid客戶端amr格式音頻文件,并將amr格式音頻文件轉換成生成wav格式的音頻文件,然后,在ios平臺上通過播放器重放wav格式的音頻文件。
2.根據(jù)權利要求I所述的手機跨平臺語言傳輸解碼方法,其特征在于在ios平臺客戶端上將amr格式音頻文件轉換成wav格式的音頻文件包括以下步驟 A、讀取amr格式音頻文件中標準幀,根據(jù)標準幀幀頭計算標準幀的大小; B、創(chuàng)建并初始化ー個wave格式的音頻文件; C、讀取amr格式音頻文件中其它幀; D、判斷這些幀是否為壞幀,如果是壞幀,則丟棄,否則轉向步驟E; E、讀取該幀的音頻數(shù)據(jù)塊,并將該音頻數(shù)據(jù)塊轉換成PCM數(shù)據(jù),根據(jù)wave格式的音頻文件的要求生成幀頭,形成wave格式的音頻文件的數(shù)據(jù)幀,依次寫入到步驟B中創(chuàng)建的wave格式的音頻文件中。
3.根據(jù)權利要求2所述的手機跨平臺語言傳輸解碼方法,其特征在于步驟D中壞幀的判斷是根據(jù)被判斷的幀是否與標準幀大小一致,如果不一致則為壞幀。
全文摘要
本發(fā)明提供了一一種手機跨平臺語言傳輸解碼方法,ios客戶端接收到Andorid客戶端amr格式音頻文件,并將amr格式音頻文件轉換成生成wav格式的音頻文件,然后,在ios平臺上通過播放器重放wav格式的音頻文件。本發(fā)明中,ios客戶端接收到Andorid客戶端amr格式音頻數(shù)據(jù),調用解碼方法,返回wav格式音頻數(shù)據(jù),實現(xiàn)ios客戶端和Andriod客戶端之間音頻的傳輸。
文檔編號H04M1/725GK102693728SQ20121018603
公開日2012年9月26日 申請日期2012年6月7日 優(yōu)先權日2012年6月7日
發(fā)明者方鴻灝 申請人:深圳市路友網(wǎng)絡科技有限公司