2012-03-28 13 views
0

AVAssetWriterを使用してm4aファイルを作成しようとしています。これは、iPhone 3Gを除外したどのデバイスでも完璧に動作します。 3Gの問題はAACエンコーディングをサポートしていないという人もいます。本当ですか? if([assetWriter canAddInput:assetWriterInput])はNOを返します。AVAssetWriterはiPhone 3Gでm4aファイルを作成できません

AVAssetWriter *assetWriter = [AVAssetWriter assetWriterWithURL:exportURL 
                 fileType:AVFileTypeAppleM4A 
                  error:&assetError]; 
if (assetError) { 
    NSLog (@"error: %@", assetError); 
    return; 
} 
AudioChannelLayout channelLayout; 
memset(&channelLayout, 0, sizeof(AudioChannelLayout)); 
channelLayout.mChannelBitmap = 0; 
channelLayout.mNumberChannelDescriptions = 0; 
channelLayout.mChannelLayoutTag = kAudioChannelLayoutTag_Stereo; 
NSDictionary *outputSettings = [NSDictionary dictionaryWithObjectsAndKeys: 
           [ NSNumber numberWithInt: kAudioFormatMPEG4AAC], AVFormatIDKey, 
           [ NSNumber numberWithInt: 2], AVNumberOfChannelsKey, 
           [ NSNumber numberWithFloat: 44100.0], AVSampleRateKey, 
           [ NSData dataWithBytes: &channelLayout length:sizeof(AudioChannelLayout) ], AVChannelLayoutKey, 
           [ NSNumber numberWithInt: 192000], AVEncoderBitRateKey,nil]; 

AVAssetWriterInput *assetWriterInput = [AVAssetWriterInput assetWriterInputWithMediaType:AVMediaTypeAudio 
                      outputSettings:outputSettings]; 

if ([assetWriter canAddInput:assetWriterInput]) { 
    [assetWriter addInput:assetWriterInput]; 
} 

誰もがどのようにiPhone 3G上でM4Aファイルを作成するには、知っていますか? ありがとう

答えて

0

あなたが言っているように、iPhone 3GはAAC(sorry, no direct link, scroll about a page down to table 1-2)の「組み込み」エンコードをサポートしていないので、独自のエンコーダをバンドルせずに行う方法はありません。

問題は、AACエンコーダをバンドルするには特許ライセンスが必要です。それが対処できるものなら、あなたはiPhoneのためにfaad2をコンパイルして使用できるはずです。

+0

ありがとうございました。 –

関連する問題