[已解決] AVAudioRecorder 錄音,編碼問題


大家好,我想用AVAudioRecorder實現錄音回放功能,其中

        NSMutableDictionary* recordSetting = [[NSMutableDictionary alloc] init];

        [recordSetting setValue :[NSNumber numberWithInt:kAudioFormatAMR] forKey:AVFormatIDKey];

        [recordSetting setValue:[NSNumber numberWithFloat:44100.0] forKey:AVSampleRateKey];

        [recordSetting setValue:[NSNumber numberWithInt: 2] forKey:AVNumberOfChannelsKey];


        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,

                                                             NSUserDomainMask, YES);

        NSString *documentsDirectory = [paths objectAtIndex:0];

        recordedTmpFile = [NSURL fileURLWithPath:[documentsDirectory stringByAppendingPathComponent: [NSString stringWithFormat: @"test%d.%@",01, @"caf"]]];

        recorder = [[ AVAudioRecorder alloc] initWithURL:recordedTmpFile settings:recordSetting error:&error];

        [recorder setDelegate:self];

        [recorder prepareToRecord];

        [recorder record];



紅色部分代碼,iphone sdk只支持幾種編碼格式,當然不包括
kAudioFormatAMR 我想知道,錄音用什么格式,能夠保證音效的情況下,使錄音文件盡量小啊?

 

下面是一些iPhone OS支持的音頻回放格式:

AAC
HE-AAC
AMR (Adaptive Multi-Rate,是一種語音格式)
ALAC (Apple Lossless)
iLBC (互聯網Low Bitrate Codec,另一種語音格式)
IMA4 (IMA/ADPCM)
線性PCM (無壓縮)
µ-law和a-law
MP3 (MPEG-1 音頻第3層)
下面是一些iPhone OS支持的音頻錄制格式:

ALAC (Apple Lossless)
iLBC (互聯網Low Bitrate Codec,用於語音)
IMA/ADPCM (IMA4)
線性PCM
µ-law和a-law
下面的列表總結了iPhone OS如何支持單路或多路音頻格式:

線性PCM和IMA4 (IMA/ADPCM) 在iPhone OS上,您可以同時播放多路線性PCM或IMA4聲音,而不會導致CPU資源的問題。這一點同樣適用於AMR和iLBC語音品質格式,以及µ-law和a-law壓縮格式。在使用壓縮格式時,請檢查聲音的品質,確保滿足您的需要。
AAC、MP3、和ALAC (Apple Lossless) AAC、MP3、和ALAC聲音的回放可以使用iPhone OS設備上高效的硬件解碼,但是這些編解碼器共用一個硬件路徑,通過硬件,設備每次只能播放上述格式的一種。
AAC、MP3、和ALAC的回放共用同一硬件路徑的事實會對“合作播放”風格的應用程序(比如虛擬鋼琴)產生影響。如果用戶在iPod程序上播放上述三種格式之一的音頻,則您的應用程序—如果要和該音頻一起播放聲音—需要使用軟件解碼。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM