音頻這塊涉及面廣,細節(jié)也挺多,以下為針對音頻轉碼部分
一、介紹幾種壓縮編碼格式
01、WAV編碼
WAV編碼的一種實現(xiàn)就是在PCM數(shù)據(jù)格式的前面加上44字節(jié),分別用來描述PCM的采樣率、聲道率、數(shù)據(jù)格式等信息。
特點:音質(zhì)非常好,大量軟件都支持。
使用場合:多媒體開發(fā)的中間文件、保存音樂和音效素材。
02、MP3編碼
MP3具有不錯的壓縮比,使用LAME編碼(MP3編碼格式的一種實現(xiàn))的中高碼率的MP3文件,聽感非常接近WAV,當然在不同的應用場景下,應該調(diào)整合適的參數(shù)以達到最好的效果。特點:音質(zhì)在128Kbit/s已上表現(xiàn)不錯,壓縮比比較高,大量軟件和硬件都支持,兼容性好。
03、AAC編碼
是一種專為聲音數(shù)據(jù)設計的文件壓縮格式。與MP3不同,它采用了全新的算法進行編碼,更加高效,具有更高的“性價比”。利用AAC格式,可使人感覺聲音質(zhì)量沒有明顯降低的前提下,更加小巧。蘋果ipod、諾基亞手機支持AAC格式的音頻文件。
特點:在小于128kBIT/s一下的音頻編碼,多用于視頻中音軌的編碼。
04、OGG編碼
Ogg是一種非常有潛力的編碼,在各種碼率下都有比較優(yōu)秀的表現(xiàn),尤其在中低碼率場景下。Ogg除了音質(zhì)很好,還是完全免費的。ogg有著出色的算法,可以用更小的碼率達到更好的音質(zhì)。Ogg目前支持的情況還不夠好,無論軟件還是硬件,都無法和MP3相提并論。
特點:可以用比MP3更小的碼率實現(xiàn)比MP3更好的音質(zhì),高中低碼率下均有良好的表現(xiàn),兼容性不夠好,流媒體特性不支持。
使用場合:語音聊天的音頻消息場景
二、iOS音頻處理各個框架

AVAudioPlayer
基本操作:播放、暫停、停止、循環(huán)等等一些基本的音頻播放功能。
控制:可對音頻進行任意時間位置播放;進度控制。
其它:*從文件或緩沖區(qū)播放聲音;獲取音視頻關鍵參數(shù),如音頻標題、作者、功率等等。
三、錄音設置
//錄音設置
? ? NSMutableDictionary *recordSetting = [[NSMutableDictionary alloc]init];
? ? //設置錄音格式? AVFormatIDKey==kAudioFormatLinearPCM
? ? [recordSetting setValue:[NSNumber numberWithInt:kAudioFormatLinearPCM] forKey:AVFormatIDKey];
? ? //設置錄音采樣率(Hz) 如:AVSampleRateKey==8000/44100/96000(影響音頻的質(zhì)量)
? ? [recordSetting setValue:[NSNumber numberWithFloat:44100] forKey:AVSampleRateKey];
? ? //錄音通道數(shù)? 1 或 2
? ? [recordSetting setValue:[NSNumber numberWithInt:2] forKey:AVNumberOfChannelsKey];
? ? //線性采樣位數(shù)? 8、16、24、32
? ? [recordSetting setValue:[NSNumber numberWithInt:16] forKey:AVLinearPCMBitDepthKey];
? ? //錄音的質(zhì)量
? ? [recordSetting setValue:[NSNumber numberWithInt:AVAudioQualityHigh] forKey:AVEncoderAudioQualityKey];
注意:如果WAV轉MP3通道數(shù)目需設置為2,否則轉碼后聲音不對(音色、音質(zhì)都會變質(zhì)),錄音的采樣率和轉碼的采樣率需保持一致,AVNumberOfChannelsKey設置為2時,文件同時會增加一倍;如果設置默認為MP3則會失敗。
??