Кодек не может быть доступен.(-66672) - PullRequest
1 голос
/ 12 января 2011

Я пытаюсь преобразовать файл 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!");

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

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

1 Ответ

3 голосов
/ 03 апреля 2011

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

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

Я знаю, что AVAudioSessionCategoryPlayAndRecord, AVAudioSessionCategorySoloAmbient и AVAudioSessionCategoryAudioProcessing работают наверняка (если вы не переопределяете свойство kAudioSessionProategor3).Я фактически собрал все, что вам нужно для кодирования любого аудиофайла в AAC в асинхронный класс: TPAACAudioConverter

...