ios audio metadata avassetexportsession

ios - ¿Cómo usar adecuadamente AVAssetExportSession para establecer metadatos para un activo de audio?



metadata (1)

He analizado cada ejemplo que puedo encontrar para establecer metadatos usando AVAssetExportSession , pero aunque la exportación de audio funciona bien (el archivo de audio resultante se reproduce AVAssetExportSession ), aún no se exportan metadatos con el archivo. Estoy usando Xcode 4.5, objetivo construir iOS 5, dispositivo de prueba iOS 6. Por favor, vea el código que estoy usando a continuación, y por favor hágamelo saber lo que estoy haciendo mal.

encabezamiento

// for metadata export NSArray *MyMetadata; AVMutableMetadataItem *common1; AVMutableMetadataItem *common2; AVMutableMetadataItem *common3; AVMutableMetadataItem *common4;

implementación

AVAsset *asset = [AVAsset assetWithURL:audioFileInput]; AVAssetExportSession *exportSession = [AVAssetExportSession exportSessionWithAsset:asset presetName:AVAssetExportPresetPassthrough]; if (!exportSession) { return; } CMTime startTime = CMTimeMake((int)(floor(fileStartMarker * 100)), 100); CMTime stopTime = CMTimeMake((int)(ceil(fileEndMarker * 100)), 100); CMTimeRange exportTimeRange = CMTimeRangeFromTimeToTime(startTime, stopTime); exportSession.outputURL = audioFileOutput; exportSession.outputFileType = @"com.apple.coreaudio-format"; exportSession.timeRange = exportTimeRange; // define meta data for file // Common metadata common1 = [[AVMutableMetadataItem alloc] init]; // Title common1.keySpace = AVMetadataKeySpaceCommon; common1.key = AVMetadataCommonKeyTitle; common1.value = @"Title Test Value"; common2 = [[AVMutableMetadataItem alloc] init]; // Description common2.keySpace = AVMetadataKeySpaceCommon; common2.key = AVMetadataCommonKeyDescription; common2.value = @"Description Test Value"; common3 = [[AVMutableMetadataItem alloc] init]; // Creation Date common3.keySpace = AVMetadataKeySpaceCommon; common3.key = AVMetadataCommonKeyCreationDate; common3.value = @"Creation Date Test Value"; common4 = [[AVMutableMetadataItem alloc] init]; // Software common4.keySpace = AVMetadataKeySpaceCommon; common4.key = AVMetadataCommonKeySoftware; common4.value = @"My File Trimmer"; MyMetadata = [[NSArray alloc] initWithObjects:common1, common2, common3, common4, nil]; exportSession.metadata = MyMetadata; [common1 release]; [common2 release]; [common3 release]; [common4 release]; [exportSession exportAsynchronouslyWithCompletionHandler:^{ if (exportSession.status == AVAssetExportSessionStatusCompleted) { // export done } else if (exportSession.status == AVAssetExportSessionStatusFailed) { // export failed } }]; [MyMetadata release];


¿Has intentado configurar el identificador?

me gusta:

let authorMeta = AVMutableMetadataItem() authorMeta.identifier = AVMetadataCommonIdentifierAuthor authorMeta.key = AVMetadataQuickTimeMetadataKeyAuthor authorMeta.keySpace = AVMetadataKeySpaceCommon authorMeta.value = "NFer"