壹、介紹幾種壓縮編碼格式
01、WAV編碼
WAV編碼的壹種實現就是在PCM數據格式的前面加上44字節,分別用來描述PCM的采樣率、聲道率、數據格式等信息。
特點:音質非常好,大量軟件都支持。
使用場合:多媒體開發的中間文件、保存音樂和音效素材。
02、MP3編碼
MP3具有不錯的壓縮比,使用LAME編碼(MP3編碼格式的壹種實現)的中高碼率的MP3文件,聽感非常接近WAV,當然在不同的應用場景下,應該調整合適的參數以達到最好的效果。特點:音質在128Kbit/s已上表現不錯,壓縮比比較高,大量軟件和硬件都支持,兼容性好。
03、AAC編碼
是壹種專為聲音數據設計的文件壓縮格式。與 MP3 不同,它采用了全新的算法進行編碼,更加高效,具有更高的“性價比”。利用AAC格式,可使人感覺聲音質量沒有明顯降低的前提下,更加小巧。 蘋果ipod 、 諾基亞 手機支持AAC格式的音頻文件。
特點:在小於128kBIT/s壹下的音頻編碼,多用於視頻中音軌的編碼。
04、OGG編碼
Ogg是壹種非常有潛力的編碼,在各種碼率下都有比較優秀的表現,尤其在中低碼率場景下。Ogg除了音質很好,還是完全免費的。ogg有著出色的算法,可以用更小的碼率達到更好的音質。Ogg目前支持的情況還不夠好,無論軟件還是硬件,都無法和MP3相提並論。
特點:可以用比MP3更小的碼率實現比MP3更好的音質,高中低碼率下均有良好的表現,兼容性不夠好,流媒體特性不支持。
使用場合:語音聊天的音頻消息場景
二、iOS音頻處理各個框架
AVAudioPlayer
基本操作:播放、暫停、停止、循環等等壹些基本的音頻播放功能。
控制:可對音頻進行任意時間位置播放;進度控制。
其它:*從文件或緩沖區播放聲音;獲取音視頻關鍵參數,如音頻標題、作者、功率等等。
三、錄音設置
//錄音設置
NSMutableDictionary *recordSetting = [[NSMutableDictionary alloc]init];
//設置錄音格式? AVFormatIDKey==kAudioFormatLinearPCM
[recordSetting setValue:[NSNumber numberWithInt:kAudioFormatLinearPCM] forKey:AVFormatIDKey];
//設置錄音采樣率(Hz) 如:AVSampleRateKey==8000/44100/96000(影響音頻的質量)
[recordSetting setValue:[NSNumber numberWithFloat:44100] forKey:AVSampleRateKey];
//錄音通道數? 1 或 2
[recordSetting setValue:[NSNumber numberWithInt:2] forKey:AVNumberOfChannelsKey];
//線性采樣位數? 8、16、24、32
[recordSetting setValue:[NSNumber numberWithInt:16] forKey:AVLinearPCMBitDepthKey];
//錄音的質量
[recordSetting setValue:[NSNumber numberWithInt:AVAudioQualityHigh] forKey:AVEncoderAudioQualityKey];
註意:如果WAV轉MP3通道數目需設置為2,否則轉碼後聲音不對(音色、音質都會變質),錄音的采樣率和轉碼的采樣率需保持壹致,AVNumberOfChannelsKey設置為2時,文件同時會增加壹倍;如果設置默認為MP3則會失敗。
?