我有一个iPhone视频录制应用程序.我AVAssetWriter用于将录制的视频数据写入文件.我也有兴趣将自定义元数据嵌入到文件中.例如:我想将我的应用程序识别为视频的创建者.
因此,在创建资产编写者之后,我使用密钥将创建者值添加AVMetadataCommonKeyCreator到资产编写者的元数据中.
代码段如下:
AVAssetWriter *assetWrtr = [[AVAssetWriter alloc] initWithURL:inURL fileType:AVFileTypeQuickTimeMovie error:&error];
self.assetWriter = assetWrtr;
[assetWrtr release];
NSArray *existingMetadataArray = self.assetWriter.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 = AVMetadataCommonKeyCreator;
item.value = @"My App";
[newMetadataArray addObject:item];
self.assetWriter.metadata = newMetadataArray;
[newMetadataArray release];
[item release];
Run Code Online (Sandbox Code Playgroud)
录制完成后,我尝试使用AVURLAsset读取文件的内容.
NSURL *outputFileURL = …Run Code Online (Sandbox Code Playgroud)