AVAudioRecorder 支持哪些格式来录制声音?
Posted
技术标签:
【中文标题】AVAudioRecorder 支持哪些格式来录制声音?【英文标题】:what are the formats supported in AVAudioRecorder for recording sound? 【发布时间】:2011-07-29 02:16:57 【问题描述】:我在http://developer.apple.com/library/ios/#documentation/MusicAudio/Reference/CoreAudioDataTypesRef/Reference/reference.html#//apple_ref/doc/uid/TP40004488 找到了不同值(音频数据格式)的列表
音频数据格式标识符 音频数据格式的标识符,在 AudioStreamBasicDescription 结构中使用。
kAudioFormatLinearPCM = 'lpcm',
kAudioFormatAC3 = 'ac-3',
kAudioFormat60958AC3 = 'cac3',
kAudioFormatAppleIMA4 = 'ima4',
kAudioFormatMPEG4AAC = 'aac',
kAudioFormatMPEG4CELP = 'celp',
kAudioFormatMPEG4HVXC = 'hvxc',
kAudioFormatMPEG4TwinVQ = 'twvq',
kAudioFormatMACE3 = 'MAC3',
kAudioFormatMACE6 = 'MAC6',
kAudioFormatULaw = 'ulaw',
kAudioFormatALaw = 'alaw',
kAudioFormatQDesign = 'QDMC',
kAudioFormatQDesign2 = 'QDM2',
kAudioFormatQUALCOMM = 'Qclp',
kAudioFormatMPEGLayer1 = '.mp1',
kAudioFormatMPEGLayer2 = '.mp2',
kAudioFormatMPEGLayer3 = '.mp3',
kAudioFormatTimeCode = '时间',
kAudioFormatMIDIStream = 'midi',
kAudioFormatParameterValueStream = 'apvs',
kAudioFormatAppleLossless = 'alac'
kAudioFormatMPEG4AAC_HE = 'aach',
kAudioFormatMPEG4AAC_LD = 'aacl',
kAudioFormatMPEG4AAC_ELD = 'aace',
kAudioFormatMPEG4AAC_HE_V2 = 'aacp',
kAudioFormatMPEG4AAC_Spatial = 'aacs',
kAudioFormatAMR = 'samr',
kAudioFormatAudible = 'AUDB',
kAudioFormatiLBC = 'ilbc',
kAudioFormatDVIIntelIMA = 0x6D730011,
kAudioFormatMicrosoftGSM = 0x6D730031,
kAudioFormatAES3 = 'aes3'
但是,我认为我们不能使用所有提到的格式(例如 mp3)。
谁能帮助我了解使用 AVAudioRecorder 录制声音所支持的格式?
谢谢。
【问题讨论】:
【参考方案1】:根据苹果文档Apple Core Audio Format Specification 1.0,它现在应该支持 mp3 虽然我还没有测试过,但这是他们支持的当前枚举:
enum
kAudioFormatLinearPCM = 'lpcm',
kAudioFormatAppleIMA4 = 'ima4',
kAudioFormatMPEG4AAC = 'aac ',
kAudioFormatMACE3 = 'MAC3',
kAudioFormatMACE6 = 'MAC6',
kAudioFormatULaw = 'ulaw',
kAudioFormatALaw = 'alaw',
kAudioFormatMPEGLayer1 = '.mp1',
kAudioFormatMPEGLayer2 = '.mp2',
kAudioFormatMPEGLayer3 = '.mp3',
kAudioFormatAppleLossless = 'alac'
;
【讨论】:
thanks.any 想法如何轻松地从上述任何转换为 mp3? 这仍然是最新的吗?此列表的来源是什么? @StephenGroom 看来它现在应该支持 mp3,我已经用最新的格式/编解码器支持更新了我的答案 是否可以将录制的文件保存为.3gp格式。 例如,“alaw”使用什么文件扩展名?【参考方案2】:上面只列出来
mFormatID 字段的当前定义值
不支持录制。
已经用 AVAudioRecorder 格式测试(带采样率):
"MPEG4AAC (8000, 11025, 22050, 32000, 44100, 48000)",
"AppleLossless (8000, 11025, 22050, 32000, 44100, 48000)",
"MPEG4AAC_HE (32000, 44100, 48000)",
"MPEG4AAC_LD (22050, 32000, 44100, 48000)",
"MPEG4AAC_ELD (22050, 32000, 44100, 48000)",
"MPEG4AAC_ELD_SBR (22050, 32000, 44100, 48000)",
"MPEG4AAC_ELD_V2 (22050, 32000, 44100, 48000)"
例子:
[[AVAudioRecorder alloc] initWithURL:outputFileURL
settings:@
AVFormatIDKey : @(kAudioFormatMPEG4AAC),
AVSampleRateKey : @(44100.0),
AVNumberOfChannelsKey : @(2)
error:&error];
还有 Supported Audio file formats
【讨论】:
您能告诉我哪一个的录音效果最好吗? 最好的质量? AppleLossless 48000,我猜。我不确定。 是的。我发现这和 ima4 相同且质量最好。谢谢:)以上是关于AVAudioRecorder 支持哪些格式来录制声音?的主要内容,如果未能解决你的问题,请参考以下文章
AVAudioRecorder - 正确的 MPEG4 AAC 录制设置