我有一些文件,-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];
    

    最佳答案

    UIImagePNGRepresentation 更改为 UIImageJPEGRepresentation ,您需要jpeg数据而不是png。

    10-08 07:27