2011-01-12 36 views
1

我想使用AudioUnit将caf文件转换为m4a文件。我已经实现了转换的代码。当我尝试运行该应用程序时,出现以下错误消息;无法访问编解码器。 (-66672)

couldn't set destination client format (-66672)

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

CODE:

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!");

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

请帮我解决它。

+0

请任何一个可以帮助我解决这个问题。 – jfalexvijay 2011-01-12 06:30:17

回答

3

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

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

我知道AVAudioSessionCategoryPlayAndRecord,AVAudioSessionCategorySoloAmbient和AVAudioSessionCategoryAudioProcessing肯定工作(只要你不重写kAudioSessionProperty_OverrideCategoryMixWithOthers属性)。

其实我已经组装,你需要的任何音频文件AAC编码成异步课堂上的一切:TPAACAudioConverter

相关问题