大家好,我想用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程序上播放上述三種格式之一的音頻,則您的應用程序—如果要和該音頻一起播放聲音—需要使用軟件解碼。