AVAudioRecorder를 사용하여 AAC로 인코딩 된 .m4a 파일을 만들고 저장합니다. 이렇게하면 재생 가능한 .m4a 파일이 정상적으로 생성됩니다. 그런 다음 AVAssetExportSession을 사용하여 메타 데이터를 파일에 추가하기 위해 파일을 처리하려고합니다. 아래 코드는 비슷한 크기 (소스보다 1KB 작음)의 .m4a 파일을 생성하지만 재생할 때 단지 무음입니다. 정보의AVAssetExportSession을 통해 AAC M4A에 메타 데이터 추가
NSURL* url = [NSURL fileURLWithPath:self.m4aPath];
AVURLAsset* asset = [AVAsset assetWithURL:url];
AVMutableMetadataItem* t = [AVMutableMetadataItem metadataItem];
t.key = AVMetadataCommonKeyTitle;
t.keySpace = AVMetadataKeySpaceCommon;
t.value = @"Unit Test";
NSArray* metadata = [NSArray arrayWithObject:t];
AVAssetExportSession *exportSession = [[AVAssetExportSession alloc] initWithAsset:asset presetName:AVAssetExportPresetAppleM4A];
exportSession.outputURL = [NSURL fileURLWithPath:[[NSFileManager rawRecordingsDirectory] stringByAppendingPathComponent:@"test.m4a"]];
exportSession.outputFileType = AVFileTypeAppleM4A;
exportSession.metadata = metadata;
[exportSession exportAsynchronouslyWithCompletionHandler:^{....}];
하나 개 더 조각 : 나는 소스보고 Finder에서 파일을 내보낼 때 내 보낸 파일은 흰색 iTunes 아이콘을 가지고있는 동안, 소스 파일, 검은 아이튠즈 아이콘이 있습니다. 실제로 이것이 무엇을 의미하는지 확신 할 수 없지만 도움이되기를 희망합니다. 또한, 소스를 두 번 클릭하면 iTunes에 추가되고 재생이 시작되지만 내 보낸 iTunes를 두 번 클릭해도 아무 것도 재생되지 않습니다.