2013-01-18 1 views
5

Ich habe einige Dateien, -m4a -mp4 -mp3 usw. ich diese Detailsändern AVMetadataItem

  • AVMetadataItem
  • AVMetadataCommonKeyArtwork
  • AVMetadataCommonKeyArtist

ich tun kann, ändern wollen mit AVAssetExportSession, aber ich muss das Verzeichnis ändern. Kann ich bitte direkt auf die Datei schreiben?

fand ich dieses Programm, aber funktioniert nicht :(

NSError *error; 
AVAssetWriter *assetWrtr = [[AVAssetWriter alloc] initWithURL:[NSURL fileURLWithPath:self.path] fileType:AVFileTypeAppleM4A error:&error]; 
NSLog(@"%@",error); 

NSArray *existingMetadataArray = assetWrtr.metadata; 
NSMutableArray *newMetadataArray = nil; 
if (existingMetadataArray) 
{ 
    newMetadataArray = [existingMetadataArray mutableCopy]; // To prevent overriding of existing metadata 
} 
else 
{ 
    newMetadataArray = [[NSMutableArray alloc] init]; 
} 


AVMutableMetadataItem *item = [[AVMutableMetadataItem alloc] init]; 
item.keySpace = AVMetadataKeySpaceCommon; 
item.key = AVMetadataCommonKeyArtwork; 
item.value = UIImagePNGRepresentation([[UIImage alloc] initWithContentsOfFile:[[NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@".image"]]); 

[newMetadataArray addObject:item]; 
assetWrtr.metadata = newMetadataArray; 



[assetWrtr startWriting]; 
[assetWrtr startSessionAtSourceTime:kCMTimeZero]; 

Antwort

3

Änderung UIImagePNGRepresentation zu UIImageJPEGRepresentation Sie png benötigen JPEG-Daten nicht.