2014-02-18 44 views
0

我想從AAC格式轉換/保存音頻文件爲AIFF音頻格式。我正在嘗試使用LineraPCM。 。但音頻格式保存爲AAC格式。 。我想保存音頻文件的AIFF format.Here的我的代碼kAudioFormat用於.aif音頻文件轉換?

NSDictionary *outputSettings = [NSDictionary dictionaryWithObjectsAndKeys: 
            [NSNumber numberWithInt:kAudioFormatLinearPCM], AVFormatIDKey, 
            [NSNumber numberWithFloat:44100.0], AVSampleRateKey, 
            [NSNumber numberWithInt:2], AVNumberOfChannelsKey, 
            [NSData dataWithBytes:&channelLayout length:sizeof(AudioChannelLayout)], AVChannelLayoutKey, 
            [NSNumber numberWithInt:16], AVLinearPCMBitDepthKey, 
            [NSNumber numberWithBool:NO], AVLinearPCMIsNonInterleaved, 
            [NSNumber numberWithBool:NO],AVLinearPCMIsFloatKey, 
            [NSNumber numberWithBool:NO], AVLinearPCMIsBigEndianKey, 
            nil]; 

任何人都可以請諮詢對kAudioFormat或音頻設置使用AVAssetWriterInput將其保存在AIFF音頻格式寫入文件?

+0

AIFF可以浮動,我不是我的辦公室,但可以明天仔細看看。這些設置會發生什麼? – Volker

+0

@Volker使用這些音頻設置,音頻以AAC格式保存。 。但我想以AIFF格式保存。 。請讓我知道如何修改音頻設置以AIFF格式轉換? –

回答

1

到目前爲止,我還沒有和AVAssetWriter一起工作過,但我認爲它基本上是一種格式描述,就像核心音頻和ASBD一樣。

爲AIFF定義的AudioBasicStreamDescription的例子例如參見這裏:

aiffFormat.mSampleRate = sampleRate; 
aiffFormat.mFormatID = kAudioFormatLinearPCM; 
aiffFormat.mBytesPerPacket = 2; 
aiffFormat.mFramesPerPacket = 1; 
aiffFormat.mBytesPerFrame = 2; 
aiffFormat.mChannelsPerFrame = 2; // for STEREO 
aiffFormat.mBitsPerChannel = 16; 
aiffFormat.mFormatFlags = (kLinearPCMFormatFlagIsBigEndian | kAudioFormatFlagIsPacked | kLinearPCMFormatFlagIsSignedInteger) ; 
aiffFormat.mBitsPerChannel = sizeof(float) * 8; 
aiffFormat.mBytesPerFrame = aiffFormat.mChannelsPerFrame * sizeof(Float32); 
aiffFormat.mBytesPerPacket = aiffFormat.mFramesPerPacket * aiffFormat.mBytesPerFrame; 

在你上面的代碼中大字節順序必須設置爲YES。如前所述,我從來沒有與AVAssetWriter合作過,所以我不確定哪些更多參數需要設置或哪些不需要,但是使用上面的示例流描述,應該不會太難。

+0

謝謝福爾克。 。我修改了AVLinearPCMIsBigEndianKey = YES。但仍然有問題。你可以請你分享完整的代碼片段(輸入音頻文件)「AudioBasicStreamDescription」,正如你在答案中提到的那樣。 。這對我有幫助。 。 –

+0

這是一個大類的一部分,它打開各種音頻文件以便在OS X上通過CoreAudio進行處理,並且不會幫助AVAssetWriter – Volker

+0

感謝volker。 。我不是Core Audio OSX的專家。 。所以很混亂,如何以AIFF格式編寫音頻。 。不管音頻設置如何,它都採用AAC音頻格式。 。我試圖更新音頻設置,但它並沒有幫助:(。跟隨您的鏈接AVAssetWriter http://www.subfurther.com/blog/2010/12/13/from-ipod-library-to-pcm -samples-in-far-less-steps-than-before-previously-necessary /。讓我知道是否有任何想法出現 –