2013-01-18 22 views
5

Ben bu ayrıntılarıDeğişim AVMetadataItem

  • AVMetadataItem
  • AVMetadataCommonKeyArtwork
  • AVMetadataCommonKeyArtist
ben yapabilirim

değiştirmek istiyorum, -m4a -MP4 -mp3 vb bazı dosyaları var AVAssetExportSession, Ama dizini değiştirmem gerekiyor. Doğrudan dosya üzerine yazabileceğim bir yol var mı lütfen?

ben bu programı buldum ama çalışmıyor :(

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]; 

cevap

3

değişikliği size jpeg veri png gerekmez UIImagePNGRepresentation UIImageJPEGRepresentationiçin.