Кодек недоступен. (-66672)

Я пытаюсь преобразовать файл caf в файл m4a с помощью AudioUnit. Я реализовал код для преобразования. Когда я пытался запустить приложение, я получаю следующее сообщение об ошибке;

couldn't set destination client format (-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!");

Я не могу решить эту проблему. Я пробовал установить свойства в выходной файл. Но у меня такая же проблема.

Пожалуйста, помогите мне решить эту проблему.


person jfalexvijay    schedule 12.01.2011    source источник
comment
Пожалуйста, помогите мне решить эту проблему.   -  person jfalexvijay    schedule 12.01.2011


Ответы (1)


Я тоже столкнулся с этим - он плохо документирован, но, вероятно, причина в том, что вам нужно установить категорию звука, совместимую с аппаратным кодированием.

В частности, любой аудиосеанс, который обеспечивает смешивание с другими звуками на устройстве, остановит работу кодировщика.

Я знаю, что AVAudioSessionCategoryPlayAndRecord, AVAudioSessionCategorySoloAmbient и AVAudioSessionCategoryAudioProcessing работают точно (если вы не переопределяете свойство kAudioSessionProperty_OverrideCategoryMixWithOthers).

Я фактически собрал все, что вам нужно для кодирования любого аудиофайла в AAC, в асинхронный класс: TPAACAudioConverter

person Michael Tyson    schedule 02.04.2011