Изменить AVMetadataItem
У меня есть некоторые файлы, -m4a -mp4 -mp3 и т. Д. Я хочу изменить эти детали
AVMetadataItem
AVMetadataCommonKeyArtwork
AVMetadataCommonKeyArtist
Я могу сделать с AVAssetExportSession
, Но мне нужно изменить каталог. Есть ли способ, которым я могу написать прямо в файл, пожалуйста?
Я нашел эту программу, но не работает:(
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];
1 ответ
Измените UIImagePNGRepresentation на UIImageJPEGRepresentation вам нужны данные JPEG, а не PNG.