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

相關問題