2011-12-14 6 views
4

私はオーディオファイルのメタデータを変更する必要があるアプリケーションで作業しています。私はアップルの公式デモであるAVReaderWriterOSXを使って遊んだ。 AVAssetWriterInputAVAssetWriterのメタデータを設定しようとしましたが、メタデータを出力ファイルに書き込むことができません。誰もこれのための例がありますか?AVFoundationを使用してオーディオメタデータを変更する

ありがとうございます。

答えて

5

私は解決策を見つけたと思います。最も簡単な解決策はAVAssetExportSessionです。

AVAssetExportSession *exportSession = [[AVAssetExportSession alloc] 
    initWithAsset:asset presetName:AVAssetExportPresetMediumQuality]; 
exportSession.outputURL = ...; 
exportSession.outputFileType = AVFileTypeQuickTimeMovie; 
exportSession.timeRange = CMTimeRangeMake(startTime, duration); 
exportSession.metadata = ...; 
[exportSession exportAsynchronouslyWithCompletionHandler:handlerBlock]; 
+0

出力ファイルを再エンコードしないことを確認しましたか? –

+3

"AVAssetExportPresetPassthrough"プリセットを使用すると、無損失変換になります。 – nonamelive

+0

AVAssetWriterの場合でもこれが2016年9月現在であるかどうかは不明ですが、これはAVCaptureAudioFileOutputのAVFoundationの長年にわたるバグで、メタデータプロパティも持ちますがタイトルのみが記述されています。アルバム名やアーティスト名のような他のキーは書かれていません。この問題を回避するには、一時ファイルをキャプチャ/書き込みし、AVAssetExportSessionを作成して(前述のように)すべてのメタデータを追加する必要があります。元の書き込み中にサポートする必要がある場合は、メタデータを追加するだけでエクスポートできます。このような廃棄物。 – Dalmazio