iOS上的AVAudioRecorder错误“不支持播放数据格式”?

Posted

技术标签:

【中文标题】iOS上的AVAudioRecorder错误“不支持播放数据格式”?【英文标题】:AVAudioRecorder error "playback data format is unsupported" on iOS? 【发布时间】:2011-08-16 23:43:21 【问题描述】:

下面的代码抛出 OSStatus 错误 1718449215,根据Audio Queue Reference,表示“播放数据格式不受支持。”

如果我将AVFormatKey 更改为kAudioFormatiLBCkAudioFormatLinearPCM,代码可以正常工作。 ios 是否支持使用 kAudioFormatMPEG4AAC_HE 录制?

NSDictionary *settings = 
   [NSDictionary dictionaryWithObjectsAndKeys:
   [NSNumber numberWithFloat: 32000.0],                AVSampleRateKey,
   [NSNumber numberWithInt: kAudioFormatMPEG4AAC_HE],  AVFormatIDKey,
   [NSNumber numberWithInt: 1],                        AVNumberOfChannelsKey,
   [NSNumber numberWithInt: AVAudioQualityMedium],     AVEncoderAudioQualityKey,
nil];

NSError *error = nil;
AVAudioRecorder *avRecorder = [[AVAudioRecorder alloc] 
                                initWithURL:url 
                                settings:settings 
                                error:&error];

NSAssert(error.code != 1718449215,  @"The playback data format is unsupported.");

【问题讨论】:

【参考方案1】:

Apple 文档,特别是多媒体编程指南 (http://developer.apple.com/library/ios/#documentation/AudioVideo/Conceptual/MultimediaPG/UsingAudio/UsingAudio.html),仅将 HE-AAC 列为播放格式。为播放和录制列出了常规 AAC。所以,看起来 HE-AAC 只是部分支持。

【讨论】:

以上是关于iOS上的AVAudioRecorder错误“不支持播放数据格式”?的主要内容,如果未能解决你的问题,请参考以下文章

AVAudioRecorder currentTime 给出错误值

iOS 8 中的 AVAudioRecorder 不处理 kAudioFormatMPEG4AAC

AVAudioRecorder - 展开可选时发现 nil

Swift + AVAudioRecorder 非常安静地录制

iOS开发简记:录音AVAudioRecorder

iOS音频与视频的开发- 使用AVAudioRecorder进行录制音频