所以我的问题是:ExtAudioFileCreateWithURL使用的有效音频格式是什么?
我正在使用RemoteIO在renderCallback中录制 - 并让它使用这些规范:
AudioStreamBasicDescription :: mFormatID :: kAudioFormatLinearPCM
ExtAudioFileCreateWithURL :: AudioFileTypeID :: kAudioFileWAVEType
但结果文件很大,所以我想使用压缩格式。我一直在寻找几个小时并插入各种格式组合,但我得到错误:
uncaught exception 'NSInternalInconsistencyException',
reason: 'Couldn't create file for writing'
我还看到了有关哪些格式可以和不可以用于记录的相互矛盾的信息。对于现实检查,我修改了SpeakHere示例并使用kAudioFormatMPEG4AAC - 但对于我的生活,我不能在我自己的项目中使用这些设置。
有关使用ExtAudioFileCreateWithURL记录压缩音频的任何提示吗?
答案 0 :(得分:0)
您可以使用AudioFileGetGlobalInfo
(等)来确定当前系统支持的内容。
录制时,只记录为PCM,压缩结果,处理PCM录制,如果系统不支持您需要的目标格式。
答案 1 :(得分:0)
我终于解决了这个问题 - 直接向AAC录制到ExtAudioFile。详情请见Recording to AAC from RemoteIO: data is getting written but file unplayable