2011-06-17 1 views
1

私はAVAssetWriterInputを使用してユーザーからmp3ファイルを取得し、電子メールで送信します(DRMフリーのみ)。私はPCMを使用するときに作業するプロセスを持っていますが、mp3、またはm4a、またはcafを試しても、動作しないファイルを取得するか、空のデータを取得します。私はそれが私の出力設定のためだと思う。データを出力しない出力設定は次のとおりです。私はそれをすべて変更することにはオープンです。ありがとう!AVAssetWriterInputの出力設定が有効でないNSData

NSDictionary *outputSettings = [NSDictionary dictionaryWithObjectsAndKeys: 
           [ NSNumber numberWithInt: kAudioFormatMPEG4AAC], AVFormatIDKey, 
           [ NSNumber numberWithInt: 1 ], AVNumberOfChannelsKey, 
           [ NSNumber numberWithFloat: 44100.0 ], AVSampleRateKey, 
           [ NSData dataWithBytes: &channelLayout length: sizeof(AudioChannelLayout) ], AVChannelLayoutKey, 
           [ NSNumber numberWithInt: 64000 ], AVEncoderBitRateKey, 
           nil]; 

答えて

2

Appleはmp3だけでヘッダレスパケットであると単純に生のパケットを書くことが正常に動作し、おそらくので、のmp3ファイルを書き込むためのAPIを提供していません。

m4a/cafコンテナにAACデータを書き出す方法についてはわかりませんが、AVEncoderBitRateKeyは何もエンコードしていないので間違いなくそこに置く必要があります。データを渡すだけです。だから、AVAssetWriterを忘れずに、AVAssetExportSessionをパススループリセットで使用するのはなぜですか?

+0

ありがとうございました!私はAVAssetExportSessionで動作させましたが、非常に遅いです。バックグラウンドスレッドは永遠に起動します。これは共通ですか? – nicholjs

関連する問題