2011-01-12 5 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

答えて

3

これもよく遭遇しましたが、それは十分に文書化されていませんが、ハードウェアエンコーディングと互換性のあるオーディオカテゴリに設定する必要があると考えられます。

特に、デバイス上の他のサウンドとミキシングするオーディオセッションは、エンコーダの動作を停止します。

私は(限り、あなたはkAudioSessionProperty_OverrideCategoryMixWithOthersプロパティをオーバーライドしていないと)確かにそのAVAudioSessionCategoryPlayAndRecord、AVAudioSessionCategorySoloAmbientとAVAudioSessionCategoryAudioProcessing仕事を知っています。

私は実際にあなたが非同期クラスにAACへのオーディオファイルをエンコードするために必要なすべて組み立ててきた

TPAACAudioConverter

関連する問題