在音頻開發中 .WAVs和.MP3有什么不同呢,或者還有的.AAC和.CAF之前又有什么區別呢,這些概念在這篇文章以后應該會有一定的理解.
如果要理解每一個音頻文件,就需要了解它的兩個部分的內容:文件格式和數據格式.文件格式又稱為音頻容器,數據格式又可以認為是編碼格式.
文件格式(音頻容器)描述的是存儲在文件系統的文件的本身,而存儲在文件中的音頻數據是可以被編碼成各種各樣的格式的.比如,我們常見的CAF文件是一個文件格式(音頻容器),它可以用來存儲音頻編碼格式為MP3,LPCM或者其他的音頻編碼格式.
這里先來理解音頻編碼,在音頻相關的內容中,音頻編碼是最重要的.
iphone中支持的音頻格式如下:
AAC: 被設計用來取代MP3音頻編碼的.它會壓縮原來的聲音,因此會減少存儲空間.實際中ACC比MP3更好的壓縮率.
AMR: AMR是一個編碼格式用于壓縮語音的音頻編碼格式.
linear PCM: 是標準的線性脈沖編碼,一般是將模擬聲音轉化成數字信號,這是一個未壓縮的音頻格式.由于是未壓縮的音頻編碼格式,因此播放時候用這種格式最是最好的選擇,但是會占用過多的空間.
MP3: …
IMA4: …未壓縮
…
首先明確自己有哪些需求:
如果用于播放的音頻,選用LPCM,IMA4等其他的未壓縮或者輕度壓縮的音頻格式.如果使用壓縮率較高的AAC,MP3等這些iPhone直接硬件支持快速解碼(解壓縮).但是,硬件解碼時候每次只支持一個文件.因此,如果需要同時播放多個需要解碼(解壓縮)的文件,就需要通過代碼進行軟件解碼,非常慢.所以如何選擇數據音頻格式,這里有些建議:
如果空間足夠,那么最好使用的音頻編碼格式使用LPCM.不僅播放最快,而且可以同時播放多個音樂而不太占用CPU的資源.如果對空間有要求,最好使用ACC音頻編碼來進行音樂的播放,IMA4音頻編碼進行系統聲音的編碼.對于LPCM音頻編碼是iPhone中使用非壓縮音頻數據最好的數據格式.同時,根據具體的存儲方式,又有多種變種.音頻數據可以存儲于大端或者小端模式,用float或者integer存儲,也可以使用不同的bit-width存儲.
而在iPhone中,使用的最平凡的是:little-endian integer 16bit(或者LEI16 short類型)的格式.在Mac中,使用native-endian(和電腦一致) float point 32bit.如果是在Mac上生成音頻數據,那么最好生成合適的格式,再轉化成iPhone使用的格式.
iPhone支持許多文件格式(音頻容器)包括:MPEG-1(.mp3),MPEG-2 ADTS(.aac),AIFF,CAF,WAVE等.但是通常在iPhone中使用的容器格式就CAF,因為它可以用來封裝iPhone所支持的所有音頻格式.
比特率是一個和音頻數據格式關系密切的概念.
音頻文件的比特率就是只單位時間內傳送的bit數,單位是bit/s,kbit/s.更高的比特率會導致更大的文件.我們在使用有些音頻數據格式例如AAC或者MP3時,需要我們去設置比特率,這個參數與音頻格式在壓縮過程的壓縮率有關.當我們讓比特率變低,那么音頻質量就會更差.
注釋: 1kbit/s = 1000bit/s,而不是1024bit/s
我們需要權衡比特率的大小和聲音文件的質量,選擇合適的比特率.如果我們使用的是語音聲音,那么比特率可以適當低一點.
下面是常見的比特率:
32kbit/s: AM 無限電廣播的質量48kbit/s: 很長的語音對話64kbit/s: 正常長度的語音對話的比特率96kbit/s: FM廣播128kbit/s: MP3音樂329kbit/s: CD的比特率500kbit/s~1411kbit/s: 無損音頻編碼格式,比如LPCM最后一個專業術語:采樣率.可以見前面的文章.
新聞熱點
疑難解答