无法访问编解码器。 (-66672)

Posted

技术标签:

【中文标题】无法访问编解码器。 (-66672)【英文标题】:The codec could not be accessed. (-66672) 【发布时间】:2011-01-12 04:29:09 【问题描述】:

我正在尝试使用 AudioUnit 将 caf 文件转换为 m4a 文件。我已经实现了要转换的代码。当我尝试运行应用程序时,我收到以下错误消息;

无法设置目标客户端格式 (-66672)

我从以下链接获得了示例代码;http://developer.apple.com/library/ios/#samplecode/iPhoneExtAudioFileConvertTest/Introduction/Intro.html

代码:

size = sizeof(clientFormat);
XThrowIfError(ExtAudioFileSetProperty(sourceFile, kExtAudioFileProperty_ClientDataFormat, size, &clientFormat), "couldn't set source client format");
//UInt32 encoderSpecifier = kAudioFormatMPEG4AAC;
//XThrowIfError(AudioFormatGetPropertyInfo(kAudioFormatProperty_Encoders, sizeof(encoderSpecifier), &encoderSpecifier, &size), "AudioFormatGetPropertyInfo: couldn't get property info");
size = sizeof(clientFormat);
XThrowIfError(ExtAudioFileSetProperty(destinationFile, kExtAudioFileProperty_ClientDataFormat, size, &clientFormat), "couldn't set destination client format");
AudioConverterRef audioConverter;
size = sizeof(audioConverter);
XThrowIfError(ExtAudioFileGetProperty(destinationFile, kExtAudioFileProperty_AudioConverter, &size, &audioConverter), "Couldn't get Audio Converter!");

我没有得到解决方案。我尝试过将属性设置为输出文件。但我遇到了同样的问题。

请帮我解决。

【问题讨论】:

请任何人帮我解决它。 【参考方案1】:

我也遇到过这个 - 没有很好的文档记录,但原因可能是您必须将音频类别设置为与硬件编码兼容的类别。

特别是,任何在设备上提供与其他声音混合的音频会话都会使编码器停止工作。

我知道 AVAudioSessionCategoryPlayAndRecord、AVAudioSessionCategorySoloAmbient 和 AVAudioSessionCategoryAudioProcessing 确实有效(只要您没有覆盖 kAudioSessionProperty_OverrideCategoryMixWithOthers 属性)。

我实际上已经将任何音频文件编码为 AAC 所需的一切都组装到了一个异步类中:TPAACAudioConverter

【讨论】:

以上是关于无法访问编解码器。 (-66672)的主要内容,如果未能解决你的问题,请参考以下文章

“UnicodeEncodeError:‘ascii’编解码器无法编码字符”

Python请求:UnicodeEncodeError:'charmap'编解码器无法编码字符

“无法正确解析视频编解码器”是啥意思。意思是?

无法加载文件系统编解码器

UnicodeDecodeError: 'ascii' 编解码器无法在位置解码字节 0xec

UnicodeDecodeError:'ascii'编解码器无法解码Textranking代码中的字节[重复]